From 916ae32ca3aa7915091c89df79322873ed5c632b Mon Sep 17 00:00:00 2001 From: CM Date: Mon, 16 Jan 2023 18:22:03 +0000 Subject: [PATCH] Localization, UX and dependency updates Add i18next + react-i18next to support 11 languages Add language swap component to the settings page Submit search on enter key press Update dependencies --- package.json | 34 +- public/electron.js | 4 +- public/locales/da/beet.json | 23 + public/locales/da/blockchain.json | 139 +++++ public/locales/da/images.json | 14 + public/locales/da/setup.json | 40 ++ public/locales/de/beet.json | 23 + public/locales/de/blockchain.json | 139 +++++ public/locales/de/images.json | 14 + public/locales/de/setup.json | 40 ++ public/locales/en/beet.json | 23 + public/locales/en/blockchain.json | 139 +++++ public/locales/en/images.json | 14 + public/locales/en/setup.json | 40 ++ public/locales/es/beet.json | 23 + public/locales/es/blockchain.json | 139 +++++ public/locales/es/images.json | 14 + public/locales/es/setup.json | 40 ++ public/locales/et/beet.json | 23 + public/locales/et/blockchain.json | 139 +++++ public/locales/et/images.json | 14 + public/locales/et/setup.json | 40 ++ public/locales/fr/beet.json | 23 + public/locales/fr/blockchain.json | 139 +++++ public/locales/fr/images.json | 14 + public/locales/fr/setup.json | 40 ++ public/locales/it/beet.json | 23 + public/locales/it/blockchain.json | 139 +++++ public/locales/it/images.json | 14 + public/locales/it/setup.json | 40 ++ public/locales/ja/beet.json | 23 + public/locales/ja/blockchain.json | 139 +++++ public/locales/ja/images.json | 14 + public/locales/ja/setup.json | 40 ++ public/locales/ko/beet.json | 23 + public/locales/ko/blockchain.json | 139 +++++ public/locales/ko/images.json | 14 + public/locales/ko/setup.json | 40 ++ public/locales/pt/beet.json | 23 + public/locales/pt/blockchain.json | 139 +++++ public/locales/pt/images.json | 14 + public/locales/pt/setup.json | 40 ++ public/locales/th/beet.json | 23 + public/locales/th/blockchain.json | 139 +++++ public/locales/th/images.json | 14 + public/locales/th/setup.json | 40 ++ public/preload.js | 20 + src/App.jsx | 10 +- src/components/beet/BeetLink.jsx | 19 +- src/components/beet/Connect.jsx | 38 +- src/components/blockchain/AccountSearch.jsx | 32 +- src/components/blockchain/IssueNFT.jsx | 65 +- src/components/blockchain/LoadAsset.jsx | 16 +- src/components/blockchain/SelectAsset.jsx | 32 +- src/components/blockchain/Wizard.jsx | 284 +++++---- src/components/images/Offchain.jsx | 30 +- src/components/images/Upload.jsx | 61 -- src/components/setup/AccountMode.jsx | 36 +- src/components/setup/Environment.jsx | 14 +- src/components/setup/Loading.jsx | 6 +- src/components/setup/Offline.jsx | 6 +- src/components/setup/Settings.jsx | 68 ++- src/index.jsx | 2 + src/lib/states.js | 173 +++--- src/localization/index.js | 29 + vite.config.js | 2 +- yarn.lock | 636 ++++++++++---------- 67 files changed, 3270 insertions(+), 723 deletions(-) create mode 100644 public/locales/da/beet.json create mode 100644 public/locales/da/blockchain.json create mode 100644 public/locales/da/images.json create mode 100644 public/locales/da/setup.json create mode 100644 public/locales/de/beet.json create mode 100644 public/locales/de/blockchain.json create mode 100644 public/locales/de/images.json create mode 100644 public/locales/de/setup.json create mode 100644 public/locales/en/beet.json create mode 100644 public/locales/en/blockchain.json create mode 100644 public/locales/en/images.json create mode 100644 public/locales/en/setup.json create mode 100644 public/locales/es/beet.json create mode 100644 public/locales/es/blockchain.json create mode 100644 public/locales/es/images.json create mode 100644 public/locales/es/setup.json create mode 100644 public/locales/et/beet.json create mode 100644 public/locales/et/blockchain.json create mode 100644 public/locales/et/images.json create mode 100644 public/locales/et/setup.json create mode 100644 public/locales/fr/beet.json create mode 100644 public/locales/fr/blockchain.json create mode 100644 public/locales/fr/images.json create mode 100644 public/locales/fr/setup.json create mode 100644 public/locales/it/beet.json create mode 100644 public/locales/it/blockchain.json create mode 100644 public/locales/it/images.json create mode 100644 public/locales/it/setup.json create mode 100644 public/locales/ja/beet.json create mode 100644 public/locales/ja/blockchain.json create mode 100644 public/locales/ja/images.json create mode 100644 public/locales/ja/setup.json create mode 100644 public/locales/ko/beet.json create mode 100644 public/locales/ko/blockchain.json create mode 100644 public/locales/ko/images.json create mode 100644 public/locales/ko/setup.json create mode 100644 public/locales/pt/beet.json create mode 100644 public/locales/pt/blockchain.json create mode 100644 public/locales/pt/images.json create mode 100644 public/locales/pt/setup.json create mode 100644 public/locales/th/beet.json create mode 100644 public/locales/th/blockchain.json create mode 100644 public/locales/th/images.json create mode 100644 public/locales/th/setup.json delete mode 100644 src/components/images/Upload.jsx create mode 100644 src/localization/index.js diff --git a/package.json b/package.json index 1ea6e8c..908018c 100644 --- a/package.json +++ b/package.json @@ -52,45 +52,47 @@ } }, "dependencies": { - "@babel/core": "^7.20.7", + "@babel/core": "^7.20.12", "@emotion/react": "^11.10.5", - "@mantine/core": "^5.9.5", - "@mantine/dropzone": "^5.9.5", - "@mantine/form": "^5.9.5", - "@mantine/hooks": "^5.9.5", - "@tabler/icons": "^1.118.0", - "@vitejs/plugin-react": "^3.0.0", + "@mantine/core": "^5.10.0", + "@mantine/dropzone": "^5.10.0", + "@mantine/form": "^5.10.0", + "@mantine/hooks": "^5.10.0", + "@tabler/icons": "^1.119.0", + "@vitejs/plugin-react": "^3.0.1", "assert": "^2.0.0", "beet-js": "https://github.com/bitshares/beet-js#develop", "bitsharesjs": "^6.0.0", "bitsharesjs-ws": "^6.0.0", "buffer": "^6.0.3", - "eslint": "^8.30.0", + "eslint": "^8.32.0", "events": "^3.3.0", + "i18next": "^22.4.9", "process": "^0.11.10", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-i18next": "^12.1.4", "react-qrcode-logo": "^2.8.0", "simple-websocket": "^9.1.0", "stream-browserify": "^3.0.0", "util": "^0.12.5", - "vite": "^4.0.3", - "zustand": "^4.1.5" + "vite": "^4.0.4", + "zustand": "^4.3.2" }, "devDependencies": { "@esbuild-plugins/node-globals-polyfill": "^0.1.1", "@esbuild-plugins/node-modules-polyfill": "^0.1.4", "concurrently": "^7.6.0", "cross-env": "^7.0.3", - "electron": "^22.0.0", + "electron": "^22.0.2", "electron-builder": "^23.6.0", "electronmon": "^2.0.2", - "esbuild": "^0.16.10", + "esbuild": "^0.17.1", "eslint-config-airbnb": "^19.0.4", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-react": "^7.31.11", + "eslint-config-prettier": "^8.6.0", + "eslint-plugin-import": "^2.27.4", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.32.0", "eslint-plugin-react-hooks": "^4.6.0", "vite-plugin-electron": "^0.11.1", "wait-on": "^7.0.1" diff --git a/public/electron.js b/public/electron.js index 1024383..8a3aba4 100644 --- a/public/electron.js +++ b/public/electron.js @@ -80,5 +80,7 @@ app.whenReady().then(() => { // for applications and their menu bar to stay active until the user quits // explicitly with Cmd + Q. app.on('window-all-closed', () => { - if (process.platform !== 'darwin') app.quit(); + if (process.platform !== 'darwin') { + app.quit(); + } }); diff --git a/public/locales/da/beet.json b/public/locales/da/beet.json new file mode 100644 index 0000000..0ac63e2 --- /dev/null +++ b/public/locales/da/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Forbundet til Beet wallet.", + "linkPrompt": "Fortsæt med at linke denne app til din Beet-pung nedenfor.", + "linkButton": "Link til Beet", + "beetWait": "Afventer svar fra BEET-prompt", + "backButton": "Tilbage" + }, + "connect": { + "remove": "Fjerne", + "previousBEET": "Hvilken tidligere linket BEET-konto vil du bruge?", + "newBEET": "Vil du bruge en anden konto?", + "newBtn": "Forbind med ny konto", + "back": "Gå tilbage", + "beetHeader": "Dette værktøj er designet til brug med Bitshares BEET Wallet.", + "beetSubheading": "Start og lås den op, og klik derefter på tilslutningsknappen nedenfor for at fortsætte.", + "beetConnect": "Opret forbindelse til Beet", + "btsPrompt": "Har du endnu ikke Bitshares BEET-pungen installeret? ", + "btsGuide": "Når den er installeret, skal du oprette en tegnebog og fortsætte med at oprette forbindelse ovenfor.", + "beetDownload": "Download BEET", + "connecting": "Tilslutning til BEET" + } + } \ No newline at end of file diff --git a/public/locales/da/blockchain.json b/public/locales/da/blockchain.json new file mode 100644 index 0000000..a5f4b63 --- /dev/null +++ b/public/locales/da/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Indtast dit blockchain-konto-id/navn for at fortsætte" + }, + "selectAsset": { + "lookup": "Opslagsaktiver udstedt af en bruger", + "fetching": "Henter oplysninger på din Bitshares-konto", + "noResultsHeader": "Ingen udstedte aktiver fundet", + "noResultsDesc": "Denne Bitshares-konto har ikke udstedt nogen NFT'er på BTS DEX.", + "notice": "Bemærk: At købe og eje en NFT på BTS DEX giver dig ikke automatisk NFT-redigeringsrettigheder.", + "selection": "Vælg den NFT, du ønsker at redigere", + "back": "Gå tilbage", + "refresh": "Opdater", + "nonNFT1": "Følgende aktiver er endnu ikke NFT'er", + "nonNFT2": "Hvorfor ikke introducere NFT-funktionalitet til dine eksisterende Bitshares-aktiver?" + }, + "accounts": { + "enterID": "Indtast et konto-id for at fortsætte", + "fetchingAccount": "Søger konto", + "noAccount": "Der blev ikke fundet en sådan konto, tjek input og prøv igen.", + "searchResults": "Søgeresultater", + "loading": "Indlæser...", + "invalidID": "Ugyldigt konto-id - det skal begynde med '1.2'. ", + "accountID": "Konto-id (f.eks. 1.2.0)", + "existingID": "Vil du fortsætte med et eksisterende konto-id fra den linkede Beet-konto?", + "beetReq": "Hent konto-id fra Beet wallet", + "beetLinked": "Fortsæt med din Beet-linkede konto" + }, + "loadAsset": { + "noHeader": "Intet at redigere", + "noSubHeader": "Du har ikke gemt nogen NFT-kladder endnu.", + "draftHeader": "Vælg det NFT-udkast, du ønsker at redigere", + "back": "Gå tilbage" + }, + "wizard": { + "broadcastCreate": "For at oprette denne NFT skal du åbne din Bitshares Beet-pung og scanne følgende QR-kode", + "broadcastUpdate": "For at opdatere denne NFT skal du åbne din Bitshares Beet-pung og scanne følgende QR-kode", + "inProgress": "Vent venligst...", + "back": "Gå tilbage", + "form": { + "header": "Klar til at udstede NFT'er på Bitshares blockchain!", + "subHeader": "Sørg for, at du har nok Bitshares-tokens til at dække netværksgebyrerne.", + "feeTip": "For at spare på gebyrer overveje at få et Bitshares livstidsmedlemskab.", + "poolTip": "Husk også at trække NFT's gebyrpulje ud efter oprettelse.", + "spec": "BTS NFT Spec", + "imgHeader": "Billeddetaljer", + "qtyImages": "Denne NFT indeholder i øjeblikket følgende {{qty}} billeder:", + "changeImages": "Skift billeder", + "issuerLabel": "Bitshares-konto brugt til NFT-udstedelse", + "symbolLabel": "Aktiv symbol", + "symbolPlaceholder": "Aktivsymbol for DEX-navigation", + "mainLabel": "Hovedbeskrivelse", + "mainPlaceholder": "Kort aktivoversigt for DEX", + "snLabel": "Kort navn", + "snPlaceholder": "Forkortet navn for DEX", + "marketLabel": "Marked", + "marketPlaceholder": "Primært handelsaktiv f.eks. ", + "msLabel": "Maksimal forsyning", + "precisionLabel": "Aktivpræcision (decimaler)", + "nftHeader": "NFT detaljer", + "titleLabel": "NFT titel", + "titlePlaceholder": "NFT titel", + "artistLabel": "NFT kunstner", + "artistPlaceholder": "Kunstnerens identitet, brugernavn eller pseudonym", + "narrativeLabel": "fortælling", + "narrativePlaceholder": "Fortælling", + "tagsLabel": "NFT tags", + "tagsPlaceholder": "komma, adskilt, tags", + "typeLabel": "NFT type", + "typePlaceholder": "NFT/KUNST/VISUEL", + "attestationLabel": "NFT attestation", + "attestationPlaceholder": "En attest vedrørende denne NFT", + "ackLabel": "NFT-anerkendelser", + "ackPlaceholder": "Eventuelle anerkendelser, du skal komme med", + "holderLicenceLabel": "NFT-indehaverlicens", + "holderLicencePlaceholder": "NFT-indehaverlicens", + "licenseLabel": "NFT-licens", + "licensePlaceholder": "Licens", + "sigHeader": "Signeret tekst", + "signedLabel": "Underskrift", + "signedPlaceholder": "Underskrift", + "signature": "Underskrift", + "cerHeader": "Kernekurs", + "cerbaLabel": "Grundbeløb", + "cerbaIDLabel": "basisaktiv-id", + "cerqaLabel": "tilbudsbeløb", + "cerqaIDLabel": "tilbud aktiv-id", + "permsHeader": "Tilladelser", + "permsSubHeader": "Bemærk: Deaktivering af tilladelser er en permanent beslutning.", + "disabledCMFPerm": "Tilladelsen charge_market_fee blev permanent deaktiveret.", + "cmfPLabel": "Aktiver markedsgebyr (charge_market_fee)", + "disabledWL": "White_list-tilladelsen blev permanent deaktiveret.", + "wlLabel": "Kræv, at indehavere er hvidlistede (hvidliste)", + "disabledPOA": "Tilladelsen override_authority blev permanent deaktiveret.", + "poaLabel": "Aktivejer kan overføre aktiv tilbage til sig selv (override_authority)", + "disabledTR": "Tilladelsen transfer_restricted blev permanent deaktiveret.", + "trLabel": "Aktivejer skal godkende alle overførsler (transfer_restricted)", + "disabledDC": "Tilladelsen disable_confidential blev permanent deaktiveret.", + "dcLabel": "Deaktiver fortrolige transaktioner (disable_confidential)", + "flagsHeader": "Flag", + "flagsSubHeader": "Hvis en relateret tilladelse ovenfor er aktiveret, kan disse flag til enhver tid ændres.", + "disabledLabel": "Relavent tilladelse blev deaktiveret.", + "fcmfLabel": "Aktiver opkrævning af et markedsgebyr (charge_market_fee)", + "fwlLabel": "Kræv, at indehavere er hvidlistede (hvidliste)", + "foaLabel": "Aktivejer kan overføre aktiv tilbage til sig selv (override_authority)", + "ftrLabel": "Aktivejer skal godkende alle overførsler (transfer_restricted)", + "fdcLabel": "Deaktiver fortrolige transaktioner (disable_confidential)", + "submitHeader": "Udfyld felterne i ovenstående formular.", + "submitBtn": "Indsend", + "waitBeet": "Venter på svar fra BEET-prompter", + "saveDraftLabel": "Vil du gemme dine fremskridt til denne NFT?", + "saveBtn": "Gem udkast", + "modalTitle": "NFT JSON", + "viewJSON": "Se JSON", + "broadcastSuccess": "Succesfuldt {{action}} din NFT på {{network}} blockchain!", + "broadcastActionCreate": "oprettet", + "broadcastActionUpdate": "opdateret" + } + }, + "issueNFT": { + "form": { + "invalid": "ugyldig", + "header": "For at udstede denne NFT skal du åbne Beet-pungen og scanne nedenstående QR-kode.", + "back": "Gå tilbage", + "progress": "Vent venligst...", + "success": "Din NFT blev udstedt på {{network}} blockchain!", + "readyHeader": "Klar til at udstede NFT'er på Bitshares blockchain!", + "subHeader": "Udfyld nedenstående formular for at fortsætte med NFT-udstedelse.", + "issueHeader": "Formular til udstedelse af aktiver", + "issuerLabel": "Bitshares-konto brugt til NFT-udstedelse", + "assetID": "NFT-aktiv-id", + "quantity": "Mængde af NFT, der skal udstedes", + "target": "Målkonto at udstede NFT til", + "completeHeader": "Udfyld felterne i ovenstående formular.", + "completeBtn": "Indsend", + "beetWait": "Venter på svar fra BEET-prompter" + } + } + } \ No newline at end of file diff --git a/public/locales/da/images.json b/public/locales/da/images.json new file mode 100644 index 0000000..71da914 --- /dev/null +++ b/public/locales/da/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Fortsæt med udstedelsen", + "ipfsBtn": "Tilføj IPFS url", + "header": "Dette værktøj muliggør oprettelse af NFT'er, der bruger IPFS som deres medielager.", + "typeLabel": "Angiv filtypen:", + "typeDesc": "Dette er påkrævet for at NFT kan vises korrekt.", + "ipfsURL": "Fuld IPFS URL for en individuel fil:", + "back": "Gå tilbage", + "urlHeader": "IPFS URL'er", + "newHeader": "Har du endnu ikke uploadet dine NFT-billeder til IPFS?", + "serviceList": "Så tjek følgende IPFS pinning-tjenester:" + } + } \ No newline at end of file diff --git a/public/locales/da/setup.json b/public/locales/da/setup.json new file mode 100644 index 0000000..bdeca62 --- /dev/null +++ b/public/locales/da/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "For kontoen \"{{account}}\" hvad vil du lave?", + "create": "Opret NFT", + "edit": "Rediger NFT", + "issue": "Udsted NFT'er", + "draft": "Indlæs udkast", + "back": "Tilbage", + "header2": "Angiv venligst et konto-id/navn:", + "chooseBEET": "Spørg BEET", + "chooseSearch": "Slå konto manuelt", + "beetPrompt": "For at fortsætte skal du oprette forbindelse til Beet.", + "linkPrompt": "For at fortsætte skal du linke til Beet.", + "waiting": "Venter på brugersvar fra BEET-klient" + }, + "environment": { + "header": "Hvilken Bitshares blockchain vil du bruge?", + "testnet": "Test netværk", + "production": "Hovednetværk" + }, + "loading": { + "message": "Finder den hurtigste blockchain-forbindelse, vent venligst.." + }, + "offline": { + "header": "Du ser ud til at være offline? ", + "exit": "Afslut" + }, + "settings": { + "remove": "Fjerne", + "settings": "Indstillinger", + "linked": "Her er dine aktuelt linkede konti", + "notLinked": "Roer ikke forbundet.", + "back": "Gå tilbage", + "language": "Skift sprog?" + }, + "app": { + "error": "Der opstod et problem, nulstil og prøv igen.", + "reset": "Nulstil app" + } + } \ No newline at end of file diff --git a/public/locales/de/beet.json b/public/locales/de/beet.json new file mode 100644 index 0000000..346b3fb --- /dev/null +++ b/public/locales/de/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Erfolgreich mit Beet Wallet verbunden.", + "linkPrompt": "Fahren Sie fort, indem Sie diese App unten mit Ihrer Beet-Wallet verknüpfen.", + "linkButton": "Link zu Rübe", + "beetWait": "Warten auf Antwort von der BEET-Eingabeaufforderung", + "backButton": "Der Rücken" + }, + "connect": { + "remove": "Entfernen", + "previousBEET": "Welches zuvor verknüpfte BEET-Konto möchten Sie verwenden?", + "newBEET": "Möchten Sie ein anderes Konto verwenden?", + "newBtn": "Mit neuem Konto verbinden", + "back": "Geh zurück", + "beetHeader": "Dieses Tool ist für die Verwendung mit dem Bitshares BEET Wallet konzipiert.", + "beetSubheading": "Starten und entsperren Sie es und klicken Sie dann unten auf die Schaltfläche „Verbinden“, um fortzufahren.", + "beetConnect": "Verbinden Sie sich mit Rübe", + "btsPrompt": "Du hast das Bitshares BEET Wallet noch nicht installiert? ", + "btsGuide": "Erstellen Sie nach der Installation eine Brieftasche und fahren Sie fort, um sich oben zu verbinden.", + "beetDownload": "Rübe herunterladen", + "connecting": "Verbindung zu BEET" + } + } \ No newline at end of file diff --git a/public/locales/de/blockchain.json b/public/locales/de/blockchain.json new file mode 100644 index 0000000..0bfe63a --- /dev/null +++ b/public/locales/de/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Geben Sie Ihre Blockchain-Konto-ID/Name ein, um fortzufahren" + }, + "selectAsset": { + "lookup": "Suchen Sie nach Assets, die von einem Benutzer ausgegeben wurden", + "fetching": "Abrufen von Informationen zu Ihrem Bitshares-Konto", + "noResultsHeader": "Keine ausgegebenen Assets gefunden", + "noResultsDesc": "Dieses Bitshares-Konto hat keine NFTs auf dem BTS DEX ausgestellt.", + "notice": "Hinweis: Der Kauf und Besitz eines NFT auf dem BTS DEX gewährt Ihnen nicht automatisch NFT-Bearbeitungsrechte.", + "selection": "Wählen Sie die NFT aus, die Sie bearbeiten möchten", + "back": "Geh zurück", + "refresh": "Aktualisierung", + "nonNFT1": "Die folgenden Assets sind noch keine NFTs", + "nonNFT2": "Warum führen Sie die NFT-Funktionalität nicht in Ihre bestehenden Bitshares-Assets ein?" + }, + "accounts": { + "enterID": "Geben Sie eine Konto-ID ein, um fortzufahren", + "fetchingAccount": "Konto nachschlagen", + "noAccount": "Es konnte kein solches Konto gefunden werden, überprüfen Sie die Eingabe und versuchen Sie es erneut.", + "searchResults": "Suchergebnisse", + "loading": "Wird geladen...", + "invalidID": "Ungültige Konto-ID – Sie muss mit „1.2“ beginnen. ", + "accountID": "Konto-ID (z. B. 1.2.0)", + "existingID": "Mit einer bestehenden Konto-ID aus dem verknüpften Beet-Konto fortfahren?", + "beetReq": "Holen Sie sich die Konto-ID aus der Beet-Wallet", + "beetLinked": "Fahren Sie mit Ihrem verknüpften Beet-Konto fort" + }, + "loadAsset": { + "noHeader": "Nichts zu bearbeiten", + "noSubHeader": "Sie haben noch keine NFT-Entwürfe gespeichert.", + "draftHeader": "Wählen Sie den NFT-Entwurf aus, den Sie bearbeiten möchten", + "back": "Geh zurück" + }, + "wizard": { + "broadcastCreate": "Um diese NFT zu erstellen, öffnen Sie Ihre Bitshares Beet Wallet und scannen Sie den folgenden QR-Code", + "broadcastUpdate": "Um diese NFT zu aktualisieren, öffnen Sie Ihre Bitshares Beet Wallet und scannen Sie den folgenden QR-Code", + "inProgress": "Warten Sie mal...", + "back": "Geh zurück", + "form": { + "header": "Bereit zur Ausgabe von NFTs auf der Bitshares-Blockchain!", + "subHeader": "Stellen Sie sicher, dass Sie über genügend Bitshares-Token verfügen, um die Netzwerkgebühren zu decken.", + "feeTip": "Um Gebühren zu sparen, sollten Sie eine Bitshares-Mitgliedschaft auf Lebenszeit erwerben.", + "poolTip": "Denken Sie auch daran, den Gebührenpool der NFT nach der Erstellung zurückzuziehen.", + "spec": "BTS NFT-Spezifikation", + "imgHeader": "Bilddetails", + "qtyImages": "Diese NFT enthält derzeit Folgendes {{qty}} Bilder:", + "changeImages": "Bilder ändern", + "issuerLabel": "Bitshares-Konto, das für die NFT-Ausgabe verwendet wird", + "symbolLabel": "Asset-Symbol", + "symbolPlaceholder": "Asset-Symbol für die DEX-Navigation", + "mainLabel": "Hauptbeschreibung", + "mainPlaceholder": "Kurze Vermögensübersicht für DEX", + "snLabel": "Kurzer Name", + "snPlaceholder": "Kurzname für DEX", + "marketLabel": "Markt", + "marketPlaceholder": "Primäres Handelsgut z.B. ", + "msLabel": "Maximale Versorgung", + "precisionLabel": "Asset-Präzision (Nachkommastellen)", + "nftHeader": "NFT-Details", + "titleLabel": "NFT-Titel", + "titlePlaceholder": "NFT-Titel", + "artistLabel": "NFT-Künstler", + "artistPlaceholder": "Künstleridentität, Benutzername oder Pseudonym", + "narrativeLabel": "Narrativ", + "narrativePlaceholder": "Narrativ", + "tagsLabel": "NFT-Tags", + "tagsPlaceholder": "Komma, getrennt, Tags", + "typeLabel": "NFT-Typ", + "typePlaceholder": "NFT/KUNST/VISUELL", + "attestationLabel": "NFT-Bescheinigung", + "attestationPlaceholder": "Eine Bescheinigung bezüglich dieser NFT", + "ackLabel": "NFT-Bestätigungen", + "ackPlaceholder": "Alle Bestätigungen, die Sie machen müssen", + "holderLicenceLabel": "Lizenz für NFT-Inhaber", + "holderLicencePlaceholder": "NFT-Inhaberlizenz", + "licenseLabel": "NFT-Lizenz", + "licensePlaceholder": "Lizenz", + "sigHeader": "Signierter Text", + "signedLabel": "Unterschrift", + "signedPlaceholder": "Unterschrift", + "signature": "Unterschrift", + "cerHeader": "Kernwechselkurs", + "cerbaLabel": "Grundbetrag", + "cerbaIDLabel": "Basis-Asset-ID", + "cerqaLabel": "Angebotsbetrag", + "cerqaIDLabel": "Asset-ID zitieren", + "permsHeader": "Berechtigungen", + "permsSubHeader": "Hinweis: Das Deaktivieren von Berechtigungen ist eine dauerhafte Entscheidung.", + "disabledCMFPerm": "Die charge_market_fee-Berechtigung wurde dauerhaft deaktiviert.", + "cmfPLabel": "Marktgebühr aktivieren (charge_market_fee)", + "disabledWL": "Die Berechtigung white_list wurde dauerhaft deaktiviert.", + "wlLabel": "Erfordern, dass Inhaber auf die Whitelist gesetzt werden (white_list)", + "disabledPOA": "Die Berechtigung override_authority wurde dauerhaft deaktiviert.", + "poaLabel": "Der Eigentümer des Inhalts kann den Inhalt auf sich selbst zurückübertragen (override_authority)", + "disabledTR": "Die Berechtigung transfer_restricted wurde dauerhaft deaktiviert.", + "trLabel": "Der Eigentümer des Inhalts muss alle Übertragungen genehmigen (transfer_restricted)", + "disabledDC": "Die Berechtigung disable_confidential wurde dauerhaft deaktiviert.", + "dcLabel": "Vertrauliche Transaktionen deaktivieren (disable_confidential)", + "flagsHeader": "Flaggen", + "flagsSubHeader": "Wenn eine entsprechende Berechtigung oben aktiviert ist, können diese Flags jederzeit geändert werden.", + "disabledLabel": "Die entsprechende Berechtigung wurde deaktiviert.", + "fcmfLabel": "Aktivieren Sie die Erhebung einer Marktgebühr (charge_market_fee)", + "fwlLabel": "Erfordern, dass Inhaber auf die Whitelist gesetzt werden (white_list)", + "foaLabel": "Der Eigentümer des Inhalts kann den Inhalt auf sich selbst zurückübertragen (override_authority)", + "ftrLabel": "Der Eigentümer des Inhalts muss alle Übertragungen genehmigen (transfer_restricted)", + "fdcLabel": "Vertrauliche Transaktionen deaktivieren (disable_confidential)", + "submitHeader": "Füllen Sie die Felder im obigen Formular aus.", + "submitBtn": "einreichen", + "waitBeet": "Warten auf Antworten von BEET-Eingabeaufforderungen", + "saveDraftLabel": "Speichern Sie Ihren Fortschritt für dieses NFT?", + "saveBtn": "Entwurf speichern", + "modalTitle": "NFT-JSON", + "viewJSON": "JSON anzeigen", + "broadcastSuccess": "Erfolgreich {{action}} Ihr NFT auf der {{network}} Blockchain!", + "broadcastActionCreate": "erstellt", + "broadcastActionUpdate": "Aktualisiert" + } + }, + "issueNFT": { + "form": { + "invalid": "ungültig", + "header": "Um diese NFT auszustellen, öffnen Sie die Beet-Wallet und scannen Sie den untenstehenden QR-Code.", + "back": "Geh zurück", + "progress": "Warten Sie mal...", + "success": "Ihr NFT wurde erfolgreich auf dem ausgestellt {{network}} Blockchain!", + "readyHeader": "Bereit zur Ausgabe von NFTs auf der Bitshares-Blockchain!", + "subHeader": "Füllen Sie das folgende Formular aus, um mit der NFT-Ausstellung fortzufahren.", + "issueHeader": "Formular zur Ausgabe von Vermögenswerten", + "issuerLabel": "Bitshares-Konto, das für die NFT-Ausgabe verwendet wird", + "assetID": "NFT-Asset-ID", + "quantity": "Menge der auszugebenden NFT", + "target": "Zielkonto, an das NFT ausgegeben werden soll", + "completeHeader": "Füllen Sie die Felder im obigen Formular aus.", + "completeBtn": "einreichen", + "beetWait": "Warten auf Antworten von BEET-Eingabeaufforderungen" + } + } + } \ No newline at end of file diff --git a/public/locales/de/images.json b/public/locales/de/images.json new file mode 100644 index 0000000..0a9426f --- /dev/null +++ b/public/locales/de/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Fahren Sie mit der Ausgabe fort", + "ipfsBtn": "IPFS-URL hinzufügen", + "header": "Dieses Tool ermöglicht die Erstellung von NFTs, die IPFS als Medienspeicher verwenden.", + "typeLabel": "Geben Sie den Dateityp an:", + "typeDesc": "Dies ist erforderlich, damit die NFT korrekt angezeigt wird.", + "ipfsURL": "Vollständige IPFS-URL für eine einzelne Datei:", + "back": "Geh zurück", + "urlHeader": "IPFS-URLs", + "newHeader": "Sie haben Ihre NFT-Bilder noch nicht auf IPFS hochgeladen?", + "serviceList": "Dann sehen Sie sich die folgenden IPFS-Pinning-Dienste an:" + } + } \ No newline at end of file diff --git a/public/locales/de/setup.json b/public/locales/de/setup.json new file mode 100644 index 0000000..e590f48 --- /dev/null +++ b/public/locales/de/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "Für das Konto \"{{account}}\" Was möchten Sie tun?", + "create": "NFT erstellen", + "edit": "NFT bearbeiten", + "issue": "Geben Sie NFTs aus", + "draft": "Entwurf laden", + "back": "Der Rücken", + "header2": "Bitte geben Sie eine Konto-ID/einen Namen an:", + "chooseBEET": "Frag RÜBE", + "chooseSearch": "Konto manuell suchen", + "beetPrompt": "Um fortzufahren, verbinden Sie sich bitte mit Beet.", + "linkPrompt": "Um fortzufahren, verlinken Sie bitte mit Beet.", + "waiting": "Warten auf Benutzerantwort vom BEET-Client" + }, + "environment": { + "header": "Welche Bitshares-Blockchain möchten Sie verwenden?", + "testnet": "Netzwerk testen", + "production": "Hauptnetz" + }, + "loading": { + "message": "Suche nach schnellster Blockchain-Verbindung, bitte warten.." + }, + "offline": { + "header": "Du scheinst offline zu sein? ", + "exit": "Ausgang" + }, + "settings": { + "remove": "Entfernen", + "settings": "Einstellungen", + "linked": "Hier sind Ihre derzeit verknüpften Konten", + "notLinked": "Rübe nicht verbunden.", + "back": "Geh zurück", + "language": "Sprache ändern?" + }, + "app": { + "error": "Ein Problem ist aufgetreten, setzen Sie es zurück und versuchen Sie es erneut.", + "reset": "App zurücksetzen" + } + } \ No newline at end of file diff --git a/public/locales/en/beet.json b/public/locales/en/beet.json new file mode 100644 index 0000000..764c040 --- /dev/null +++ b/public/locales/en/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Connected to Beet wallet successfully.", + "linkPrompt": "Proceed with linking this app to your Beet wallet below.", + "linkButton": "Link to Beet", + "beetWait": "Waiting on response from BEET prompt", + "backButton": "Back" + }, + "connect": { + "remove": "Remove", + "previousBEET": "Which previously linked BEET account do you want to use?", + "newBEET": "Want to use a different account?", + "newBtn": "Connect with new account", + "back": "Go back", + "beetHeader": "This tool is designed for use with the Bitshares BEET Wallet.", + "beetSubheading": "Launch and unlock it, then click the connect button below to proceed.", + "beetConnect": "Connect to Beet", + "btsPrompt": "Don't yet have the Bitshares BEET wallet installed? Follow the link below.", + "btsGuide": "Once installed, create a wallet and proceed to connect above.", + "beetDownload": "Download BEET", + "connecting": "Connecting to BEET" + } +} \ No newline at end of file diff --git a/public/locales/en/blockchain.json b/public/locales/en/blockchain.json new file mode 100644 index 0000000..8e016ac --- /dev/null +++ b/public/locales/en/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Enter your blockchain account ID/name to proceed" + }, + "selectAsset": { + "lookup": "Lookup assets issued by an user", + "fetching": "Retrieving info on your Bitshares account", + "noResultsHeader": "No issued assets found", + "noResultsDesc": "This Bitshares account hasn't issued any NFTs on the BTS DEX.", + "notice": "Note: Buying and owning an NFT on the BTS DEX doesn't automatically grant you NFT editing rights.", + "selection": "Select the NFT you wish to edit", + "back": "Go back", + "refresh": "Refresh", + "nonNFT1": "The following assets are not yet NFTs", + "nonNFT2": "Why not introduce NFT functionality to your existing Bitshares assets?" + }, + "accounts": { + "enterID": "Enter an account ID to proceed", + "fetchingAccount": "Looking up account", + "noAccount": "No such account could be found, check input and try again.", + "searchResults": "Search results", + "loading": "Loading...", + "invalidID": "Invalid Account ID - It must begin with '1.2.' and end in a number.", + "accountID": "Account ID (e.g. 1.2.0)", + "existingID": "Proceed with an existing account ID from linked Beet account?", + "beetReq": "Fetch account ID from Beet wallet", + "beetLinked": "Proceed with your Beet linked account" + }, + "loadAsset": { + "noHeader": "Nothing to edit", + "noSubHeader": "You have not saved any NFT drafts yet.", + "draftHeader": "Select the NFT draft you wish to edit", + "back": "Go back" + }, + "wizard": { + "broadcastCreate": "To create this NFT, open your Bitshares Beet wallet and scan the following QR code", + "broadcastUpdate": "To update this NFT, open your Bitshares Beet wallet and scan the following QR code", + "inProgress": "Please wait...", + "back": "Go back", + "form": { + "header": "Ready to issue NFTs on the Bitshares blockchain!", + "subHeader": "Make sure you have enough Bitshares tokens to cover the network fees.", + "feeTip": "To save on fees consider getting a Bitshares lifetime membership.", + "poolTip": "Also remember to withdraw the NFT's fee pool after creation.", + "spec": "BTS NFT Spec", + "imgHeader": "Image details", + "qtyImages": "This NFT currently contains the following {{qty}} images:", + "changeImages": "Change images", + "issuerLabel": "Bitshares account used for NFT issuance", + "symbolLabel": "Asset symbol", + "symbolPlaceholder": "Asset symbol for DEX navigation", + "mainLabel": "Main description", + "mainPlaceholder": "Brief asset summary for DEX", + "snLabel": "Short name", + "snPlaceholder": "Shortened name for DEX", + "marketLabel": "Market", + "marketPlaceholder": "Primary trading asset e.g. BTS", + "msLabel": "Maximum supply", + "precisionLabel": "Asset precision (decimal places)", + "nftHeader": "NFT details", + "titleLabel": "NFT title", + "titlePlaceholder": "NFT title", + "artistLabel": "NFT artist", + "artistPlaceholder": "Artist identity, username or pseudonym", + "narrativeLabel": "narrative", + "narrativePlaceholder": "Narrative", + "tagsLabel": "NFT tags", + "tagsPlaceholder": "comma,separated,tags", + "typeLabel": "NFT type", + "typePlaceholder": "NFT/ART/VISUAL", + "attestationLabel": "NFT attestation", + "attestationPlaceholder": "An attestation regarding this NFT", + "ackLabel": "NFT acknowledgements", + "ackPlaceholder": "Any acknowledgements you have to make", + "holderLicenceLabel": "NFT holders license", + "holderLicencePlaceholder": "NFT holder license", + "licenseLabel": "NFT license", + "licensePlaceholder": "License", + "sigHeader": "Signed text", + "signedLabel": "Signature", + "signedPlaceholder": "signature", + "signature": "Signature", + "cerHeader": "Core Exchange Rate", + "cerbaLabel": "Base amount", + "cerbaIDLabel": "base asset id", + "cerqaLabel": "quote amount", + "cerqaIDLabel": "quote asset id", + "permsHeader": "Permissions", + "permsSubHeader": "Note: Disabling permissions is a permanent decision.", + "disabledCMFPerm": "The charge_market_fee permission was permanently disabled.", + "cmfPLabel": "Enable market fee (charge_market_fee)", + "disabledWL": "The white_list permission was permanently disabled.", + "wlLabel": "Require holders to be white-listed (white_list)", + "disabledPOA": "The override_authority permission was permanently disabled.", + "poaLabel": "Asset owner may transfer asset back to himself (override_authority)", + "disabledTR": "The transfer_restricted permission was permanently disabled.", + "trLabel": "Asset owner must approve all transfers (transfer_restricted)", + "disabledDC": "The disable_confidential permission was permanently disabled.", + "dcLabel": "Disable confidential transactions (disable_confidential)", + "flagsHeader": "Flags", + "flagsSubHeader": "If a related permission above is enabled, these flags can be changed at any time.", + "disabledLabel": "Relavent permission was disabled.", + "fcmfLabel": "Enable charging a market fee (charge_market_fee)", + "fwlLabel": "Require holders to be white-listed (white_list)", + "foaLabel": "Asset owner may transfer asset back to himself (override_authority)", + "ftrLabel": "Asset owner must approve all transfers (transfer_restricted)", + "fdcLabel": "Disable confidential transactions (disable_confidential)", + "submitHeader": "Complete the fields in the above form.", + "submitBtn": "Submit", + "waitBeet": "Waiting on responses from BEET prompts", + "saveDraftLabel": "Save your progress for this NFT?", + "saveBtn": "Save Draft", + "modalTitle": "NFT JSON", + "viewJSON": "View JSON", + "broadcastSuccess": "Successfully {{action}} your NFT on the {{network}} blockchain!", + "broadcastActionCreate": "created", + "broadcastActionUpdate": "updated" + } + }, + "issueNFT": { + "form": { + "invalid": "invalid", + "header": "To issue this NFT, open the Beet wallet and scan the below QR code.", + "back": "Go back", + "progress": "Please wait...", + "success": "Successfully issued your NFT on the {{network}} blockchain!", + "readyHeader": "Ready to issue NFTs on the Bitshares blockchain!", + "subHeader": "Complete the below form to proceed with NFT issuance.", + "issueHeader": "Asset issuance form", + "issuerLabel": "Bitshares account used for NFT issuance", + "assetID": "NFT Asset ID", + "quantity": "Quantity of NFT to issue", + "target": "Target account to issue NFT to", + "completeHeader": "Complete the fields in the above form.", + "completeBtn": "Submit", + "beetWait": "Waiting on responses from BEET prompts" + } + } +} \ No newline at end of file diff --git a/public/locales/en/images.json b/public/locales/en/images.json new file mode 100644 index 0000000..f71f97a --- /dev/null +++ b/public/locales/en/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Proceed with issuance", + "ipfsBtn": "Add IPFS url", + "header": "This tool enables creation of NFTs which use IPFS as their media storage.", + "typeLabel": "Specify the file type:", + "typeDesc": "This is required for the NFT to be displayed correctly.", + "ipfsURL": "Full IPFS URL for an individual file:", + "back": "Go back", + "urlHeader": "IPFS URLs", + "newHeader": "Not yet uploaded your NFT images to IPFS?", + "serviceList": "Then check out the following IPFS pinning services:" + } +} \ No newline at end of file diff --git a/public/locales/en/setup.json b/public/locales/en/setup.json new file mode 100644 index 0000000..9369ff1 --- /dev/null +++ b/public/locales/en/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "For the account \"{{account}}\" what do you want to do?", + "create": "Create NFT", + "edit": "Edit NFT", + "issue": "Issue NFTs", + "draft": "Load draft", + "back": "Back", + "header2": "Please provide an account id/name:", + "chooseBEET": "Ask BEET", + "chooseSearch": "Lookup account manually", + "beetPrompt": "To continue please connect to Beet.", + "linkPrompt": "To continue please link with Beet.", + "waiting": "Waiting on user response from BEET client" + }, + "environment": { + "header": "Which Bitshares blockchain do you want to use?", + "testnet": "Test network", + "production": "Main network" + }, + "loading": { + "message": "Finding fastest blockchain connection, please wait.." + }, + "offline": { + "header": "You seem to be offline? Fix your network connection then try again.", + "exit": "Exit" + }, + "settings": { + "remove": "Remove", + "settings": "Settings", + "linked": "Here are your currently linked acounts", + "notLinked": "Beet not linked.", + "back": "Go back", + "language": "Change language?" + }, + "app": { + "error": "An issue was encountered, reset and try again.", + "reset": "Reset app" + } +} \ No newline at end of file diff --git a/public/locales/es/beet.json b/public/locales/es/beet.json new file mode 100644 index 0000000..5da1c9e --- /dev/null +++ b/public/locales/es/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Conectado a la billetera Beet con éxito.", + "linkPrompt": "Continúe vinculando esta aplicación a su billetera Beet a continuación.", + "linkButton": "Enlace a la remolacha", + "beetWait": "Esperando respuesta del indicador BEET", + "backButton": "atrás" + }, + "connect": { + "remove": "Eliminar", + "previousBEET": "¿Qué cuenta BEET previamente vinculada desea utilizar?", + "newBEET": "¿Quieres usar una cuenta diferente?", + "newBtn": "Conectar con nueva cuenta", + "back": "Regresa", + "beetHeader": "Esta herramienta está diseñada para usarse con Bitshares BEET Wallet.", + "beetSubheading": "Inícielo y desbloquéelo, luego haga clic en el botón de conexión a continuación para continuar.", + "beetConnect": "Conéctese a la remolacha", + "btsPrompt": "¿Aún no tienes instalada la billetera BEET de Bitshares? ", + "btsGuide": "Una vez instalado, cree una billetera y proceda a conectarse arriba.", + "beetDownload": "Descargar REMOLACHA", + "connecting": "Conexión a BEET" + } + } \ No newline at end of file diff --git a/public/locales/es/blockchain.json b/public/locales/es/blockchain.json new file mode 100644 index 0000000..e5514f3 --- /dev/null +++ b/public/locales/es/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Ingrese su ID/nombre de cuenta de blockchain para continuar" + }, + "selectAsset": { + "lookup": "Buscar activos emitidos por un usuario", + "fetching": "Recuperando información en su cuenta de Bitshares", + "noResultsHeader": "No se encontraron activos emitidos", + "noResultsDesc": "Esta cuenta de Bitshares no ha emitido ningún NFT en BTS DEX.", + "notice": "Nota: Comprar y poseer un NFT en BTS DEX no le otorga automáticamente derechos de edición de NFT.", + "selection": "Seleccione el NFT que desea editar", + "back": "Regresa", + "refresh": "Actualizar", + "nonNFT1": "Los siguientes activos aún no son NFT", + "nonNFT2": "¿Por qué no introducir la funcionalidad NFT en sus activos de Bitshares existentes?" + }, + "accounts": { + "enterID": "Introduzca un ID de cuenta para continuar", + "fetchingAccount": "Buscando cuenta", + "noAccount": "No se pudo encontrar dicha cuenta, verifique la entrada e intente nuevamente.", + "searchResults": "Resultados de la búsqueda", + "loading": "Cargando...", + "invalidID": "ID de cuenta no válido: debe comenzar con '1.2.' ", + "accountID": "ID de cuenta (por ejemplo, 1.2.0)", + "existingID": "¿Continuar con un ID de cuenta existente de una cuenta de Beet vinculada?", + "beetReq": "Obtener ID de cuenta de la billetera Beet", + "beetLinked": "Continúe con su cuenta vinculada a Beet" + }, + "loadAsset": { + "noHeader": "nada que editar", + "noSubHeader": "Aún no ha guardado ningún borrador NFT.", + "draftHeader": "Seleccione el borrador de NFT que desea editar", + "back": "Regresa" + }, + "wizard": { + "broadcastCreate": "Para crear este NFT, abra su billetera Bitshares Beet y escanee el siguiente código QR", + "broadcastUpdate": "Para actualizar este NFT, abra su billetera Bitshares Beet y escanee el siguiente código QR", + "inProgress": "Espere por favor...", + "back": "Regresa", + "form": { + "header": "¡Listo para emitir NFT en la cadena de bloques de Bitshares!", + "subHeader": "Asegúrese de tener suficientes tokens de Bitshares para cubrir las tarifas de la red.", + "feeTip": "Para ahorrar en tarifas, considere obtener una membresía de por vida de Bitshares.", + "poolTip": "Recuerde también retirar el fondo común de tarifas del NFT después de la creación.", + "spec": "Especificaciones BTS NFT", + "imgHeader": "Detalles de la imagen", + "qtyImages": "Este NFT actualmente contiene lo siguiente {{qty}} imágenes:", + "changeImages": "Cambiar imágenes", + "issuerLabel": "Cuenta de Bitshares utilizada para la emisión de NFT", + "symbolLabel": "símbolo de activo", + "symbolPlaceholder": "Símbolo de activo para navegación DEX", + "mainLabel": "Descripción principal", + "mainPlaceholder": "Breve resumen de activos para DEX", + "snLabel": "Nombre corto", + "snPlaceholder": "Nombre abreviado de DEX", + "marketLabel": "Mercado", + "marketPlaceholder": "Activo comercial principal, p. ", + "msLabel": "Suministro máximo", + "precisionLabel": "Precisión de activos (decimales)", + "nftHeader": "Detalles NFT", + "titleLabel": "título NFT", + "titlePlaceholder": "título NFT", + "artistLabel": "artista de NFT", + "artistPlaceholder": "Identidad del artista, nombre de usuario o seudónimo", + "narrativeLabel": "narrativo", + "narrativePlaceholder": "Narrativo", + "tagsLabel": "Etiquetas NFT", + "tagsPlaceholder": "coma,separado,etiquetas", + "typeLabel": "tipo NFT", + "typePlaceholder": "NFT/ARTE/VISUAL", + "attestationLabel": "atestación NFT", + "attestationPlaceholder": "Una atestación con respecto a este NFT", + "ackLabel": "reconocimientos NFT", + "ackPlaceholder": "Cualquier reconocimiento que tengas que hacer", + "holderLicenceLabel": "Licencia de titulares de NFT", + "holderLicencePlaceholder": "Licencia de titular de NFT", + "licenseLabel": "licencia NFT", + "licensePlaceholder": "Licencia", + "sigHeader": "Texto firmado", + "signedLabel": "Firma", + "signedPlaceholder": "firma", + "signature": "Firma", + "cerHeader": "Tipo de cambio básico", + "cerbaLabel": "Cantidad base", + "cerbaIDLabel": "ID de activo base", + "cerqaLabel": "monto de la cotización", + "cerqaIDLabel": "cotizar id de activo", + "permsHeader": "permisos", + "permsSubHeader": "Nota: Deshabilitar permisos es una decisión permanente.", + "disabledCMFPerm": "El permiso charge_market_fee se inhabilitó permanentemente.", + "cmfPLabel": "Habilitar tarifa de mercado (charge_market_fee)", + "disabledWL": "El permiso white_list se deshabilitó permanentemente.", + "wlLabel": "Requerir que los titulares estén en la lista blanca (white_list)", + "disabledPOA": "El permiso override_authority se deshabilitó permanentemente.", + "poaLabel": "El propietario del activo puede transferirse el activo a sí mismo (override_authority)", + "disabledTR": "El permiso transfer_restricted se inhabilitó permanentemente.", + "trLabel": "El propietario del recurso debe aprobar todas las transferencias (transfer_restricted)", + "disabledDC": "El permiso disabled_confidential se deshabilitó de forma permanente.", + "dcLabel": "Deshabilitar transacciones confidenciales (disable_confidential)", + "flagsHeader": "banderas", + "flagsSubHeader": "Si un permiso relacionado arriba está habilitado, estas banderas se pueden cambiar en cualquier momento.", + "disabledLabel": "El permiso relevante fue deshabilitado.", + "fcmfLabel": "Habilitar el cobro de una tarifa de mercado (charge_market_fee)", + "fwlLabel": "Requerir que los titulares estén en la lista blanca (white_list)", + "foaLabel": "El propietario del activo puede transferirse el activo a sí mismo (override_authority)", + "ftrLabel": "El propietario del recurso debe aprobar todas las transferencias (transfer_restricted)", + "fdcLabel": "Deshabilitar transacciones confidenciales (disable_confidential)", + "submitHeader": "Complete los campos en el formulario anterior.", + "submitBtn": "Entregar", + "waitBeet": "Esperando respuestas de las indicaciones de BEET", + "saveDraftLabel": "¿Guardar tu progreso para este NFT?", + "saveBtn": "Guardar borrador", + "modalTitle": "NFTJSON", + "viewJSON": "Ver JSON", + "broadcastSuccess": "Exitosamente {{action}} su NFT en el {{network}} cadena de bloques!", + "broadcastActionCreate": "creado", + "broadcastActionUpdate": "actualizado" + } + }, + "issueNFT": { + "form": { + "invalid": "inválido", + "header": "Para emitir este NFT, abra la billetera Beet y escanee el siguiente código QR.", + "back": "Regresa", + "progress": "Espere por favor...", + "success": "Emitió con éxito su NFT en el {{network}} cadena de bloques!", + "readyHeader": "¡Listo para emitir NFT en la cadena de bloques de Bitshares!", + "subHeader": "Complete el siguiente formulario para proceder con la emisión de NFT.", + "issueHeader": "Formulario de emisión de activos", + "issuerLabel": "Cuenta de Bitshares utilizada para la emisión de NFT", + "assetID": "ID de activo NFT", + "quantity": "Cantidad de NFT a emitir", + "target": "Cuenta de destino para emitir NFT a", + "completeHeader": "Complete los campos en el formulario anterior.", + "completeBtn": "Entregar", + "beetWait": "Esperando respuestas de las indicaciones de BEET" + } + } + } \ No newline at end of file diff --git a/public/locales/es/images.json b/public/locales/es/images.json new file mode 100644 index 0000000..2c0c232 --- /dev/null +++ b/public/locales/es/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Proceder con la emisión", + "ipfsBtn": "Agregar URL de IPFS", + "header": "Esta herramienta permite la creación de NFT que utilizan IPFS como almacenamiento de medios.", + "typeLabel": "Especifique el tipo de archivo:", + "typeDesc": "Esto es necesario para que el NFT se muestre correctamente.", + "ipfsURL": "URL completa de IPFS para un archivo individual:", + "back": "Regresa", + "urlHeader": "URL de IPFS", + "newHeader": "¿Aún no ha subido sus imágenes NFT a IPFS?", + "serviceList": "Luego, consulte los siguientes servicios de fijación de IPFS:" + } + } \ No newline at end of file diff --git a/public/locales/es/setup.json b/public/locales/es/setup.json new file mode 100644 index 0000000..1231b3d --- /dev/null +++ b/public/locales/es/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "Por la cuenta\"{{account}}\" ¿Qué quieres hacer?", + "create": "Crear NFT", + "edit": "Editar NFT", + "issue": "Emitir NFT", + "draft": "Cargar borrador", + "back": "atrás", + "header2": "Proporcione una identificación/nombre de cuenta:", + "chooseBEET": "Pregunte a la remolacha", + "chooseSearch": "Buscar cuenta manualmente", + "beetPrompt": "Para continuar, conéctese a Beet.", + "linkPrompt": "Para continuar, enlace con Beet.", + "waiting": "Esperando la respuesta del usuario del cliente BEET" + }, + "environment": { + "header": "¿Qué cadena de bloques de Bitshares quieres usar?", + "testnet": "Red de prueba", + "production": "red principal" + }, + "loading": { + "message": "Encontrando la conexión blockchain más rápida, espere..." + }, + "offline": { + "header": "¿Pareces estar desconectado? ", + "exit": "Salida" + }, + "settings": { + "remove": "Eliminar", + "settings": "Ajustes", + "linked": "Aquí están sus cuentas actualmente vinculadas", + "notLinked": "Remolacha no ligada.", + "back": "Regresa", + "language": "¿Cambiar idioma?" + }, + "app": { + "error": "Se encontró un problema, restablezca y vuelva a intentarlo.", + "reset": "Restablecer aplicación" + } + } \ No newline at end of file diff --git a/public/locales/et/beet.json b/public/locales/et/beet.json new file mode 100644 index 0000000..b969827 --- /dev/null +++ b/public/locales/et/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Ühendus Beeti rahakotiga õnnestus.", + "linkPrompt": "Jätkake selle rakenduse linkimist oma Beeti rahakotiga allpool.", + "linkButton": "Link Peedile", + "beetWait": "Ootan vastust BEET-viibalt", + "backButton": "tagasi" + }, + "connect": { + "remove": "Eemalda", + "previousBEET": "Millist varem lingitud BEET-kontot soovite kasutada?", + "newBEET": "Kas soovite kasutada teist kontot?", + "newBtn": "Ühendage uue kontoga", + "back": "Mine tagasi", + "beetHeader": "See tööriist on mõeldud kasutamiseks koos Bitshares BEET Walletiga.", + "beetSubheading": "Käivitage ja avage see, seejärel klõpsake jätkamiseks allolevat ühenduse nuppu.", + "beetConnect": "Ühendage Beetiga", + "btsPrompt": "Kas teil pole veel Bitshares BEET rahakotti installitud? ", + "btsGuide": "Pärast installimist looge rahakott ja jätkake ülaltoodud ühenduse loomist.", + "beetDownload": "Laadige alla BEET", + "connecting": "Ühenduse loomine teenusega BEET" + } + } \ No newline at end of file diff --git a/public/locales/et/blockchain.json b/public/locales/et/blockchain.json new file mode 100644 index 0000000..f45b4d8 --- /dev/null +++ b/public/locales/et/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Jätkamiseks sisestage oma plokiahela konto ID/nimi" + }, + "selectAsset": { + "lookup": "Otsige kasutaja väljastatud varasid", + "fetching": "Teabe hankimine teie Bitsharesi kontolt", + "noResultsHeader": "Välja antud varasid ei leitud", + "noResultsDesc": "See Bitsharesi konto ei ole BTS DEXis väljastanud ühtegi NFT-d.", + "notice": "Märkus. NFT ostmine ja omamine BTS DEXis ei anna teile automaatselt NFT redigeerimisõigusi.", + "selection": "Valige NFT, mida soovite redigeerida", + "back": "Mine tagasi", + "refresh": "Värskenda", + "nonNFT1": "Järgmised varad ei ole veel NFT-d", + "nonNFT2": "Miks mitte tutvustada oma olemasolevatele Bitsharesi varadele NFT-funktsioone?" + }, + "accounts": { + "enterID": "Jätkamiseks sisestage konto ID", + "fetchingAccount": "Otsin kontot", + "noAccount": "Sellist kontot ei leitud, kontrollige sisestust ja proovige uuesti.", + "searchResults": "Otsingu tulemused", + "loading": "Laadimine...", + "invalidID": "Kehtetu konto ID – see peab algama numbriga 1.2. ", + "accountID": "Konto ID (nt 1.2.0)", + "existingID": "Kas jätkata lingitud Beeti konto olemasoleva konto ID-ga?", + "beetReq": "Hankige Beet walletist konto ID", + "beetLinked": "Jätkake oma Beetiga seotud kontoga" + }, + "loadAsset": { + "noHeader": "Pole midagi muuta", + "noSubHeader": "Te pole veel ühtegi NFT mustandit salvestanud.", + "draftHeader": "Valige NFT mustand, mida soovite muuta", + "back": "Mine tagasi" + }, + "wizard": { + "broadcastCreate": "Selle NFT loomiseks avage oma Bitshares Beet rahakott ja skannige järgmine QR-kood", + "broadcastUpdate": "Selle NFT värskendamiseks avage oma Bitshares Beet rahakott ja skannige järgmine QR-kood", + "inProgress": "Palun oota...", + "back": "Mine tagasi", + "form": { + "header": "Valmis väljastama NFT-sid Bitsharesi plokiahelas!", + "subHeader": "Veenduge, et teil oleks võrgutasude katmiseks piisavalt Bitsharesi märke.", + "feeTip": "Tasude säästmiseks kaaluge Bitsharesi eluaegse liikmeks saamist.", + "poolTip": "Ärge unustage ka pärast loomist NFT tasude kogumit välja võtta.", + "spec": "BTS NFT Spec", + "imgHeader": "Pildi üksikasjad", + "qtyImages": "See NFT sisaldab praegu järgmist {{qty}} pildid:", + "changeImages": "Muuda pilte", + "issuerLabel": "Bitsharesi konto, mida kasutatakse NFT emiteerimiseks", + "symbolLabel": "Vara sümbol", + "symbolPlaceholder": "DEX-navigeerimise vara sümbol", + "mainLabel": "Peamine kirjeldus", + "mainPlaceholder": "DEXi varade lühikokkuvõte", + "snLabel": "Lühike nimi", + "snPlaceholder": "DEXi lühendatud nimi", + "marketLabel": "Turg", + "marketPlaceholder": "Esmane kauplemisvara nt. ", + "msLabel": "Maksimaalne pakkumine", + "precisionLabel": "Varade täpsus (kümnendkohad)", + "nftHeader": "NFT üksikasjad", + "titleLabel": "NFT pealkiri", + "titlePlaceholder": "NFT pealkiri", + "artistLabel": "NFT kunstnik", + "artistPlaceholder": "Kunstniku identiteet, kasutajanimi või pseudonüüm", + "narrativeLabel": "narratiiv", + "narrativePlaceholder": "Narratiiv", + "tagsLabel": "NFT sildid", + "tagsPlaceholder": "koma,eraldatud,sildid", + "typeLabel": "NFT tüüp", + "typePlaceholder": "NFT/KUNST/VISUAAL", + "attestationLabel": "NFT tunnistus", + "attestationPlaceholder": "Kinnitus selle NFT kohta", + "ackLabel": "NFT tunnustused", + "ackPlaceholder": "Kõik tunnustused, mida peate tegema", + "holderLicenceLabel": "NFT omaniku litsents", + "holderLicencePlaceholder": "NFT omaniku litsents", + "licenseLabel": "NFT litsents", + "licensePlaceholder": "Litsents", + "sigHeader": "Signeeritud tekst", + "signedLabel": "Allkiri", + "signedPlaceholder": "allkiri", + "signature": "Allkiri", + "cerHeader": "Põhivahetuskurss", + "cerbaLabel": "Baassumma", + "cerbaIDLabel": "põhivara id", + "cerqaLabel": "hinnapakkumise summa", + "cerqaIDLabel": "hinnapakkumise vara ID", + "permsHeader": "load", + "permsSubHeader": "Märkus. Lubade keelamine on püsiv otsus.", + "disabledCMFPerm": "Luba charge_market_fee keelati jäädavalt.", + "cmfPLabel": "Luba turutasu (charge_market_fee)", + "disabledWL": "Luba valge_loend keelati jäädavalt.", + "wlLabel": "Nõua, et omanikud oleksid valges nimekirjas (valge_loend)", + "disabledPOA": "Volituse override_authority luba oli jäädavalt keelatud.", + "poaLabel": "Vara omanik võib vara endale tagasi anda (override_authority)", + "disabledTR": "Transfer_restricted luba oli jäädavalt keelatud.", + "trLabel": "Vara omanik peab kõik ülekanded heaks kiitma (transfer_restricted)", + "disabledDC": "Luba disable_confidential keelati jäädavalt.", + "dcLabel": "Konfidentsiaalsete tehingute keelamine (disable_confidential)", + "flagsHeader": "Lipud", + "flagsSubHeader": "Kui ülaltoodud seotud luba on lubatud, saab neid lippe igal ajal muuta.", + "disabledLabel": "Relaventi luba keelati.", + "fcmfLabel": "Luba turutasu võtmine (charge_market_fee)", + "fwlLabel": "Nõua, et omanikud oleksid valges nimekirjas (valge_loend)", + "foaLabel": "Vara omanik võib vara endale tagasi anda (override_authority)", + "ftrLabel": "Vara omanik peab kõik ülekanded heaks kiitma (transfer_restricted)", + "fdcLabel": "Konfidentsiaalsete tehingute keelamine (disable_confidential)", + "submitHeader": "Täitke ülaltoodud vormi väljad.", + "submitBtn": "Esita", + "waitBeet": "Ootan vastuseid BEET-viipadelt", + "saveDraftLabel": "Kas salvestada oma edusammud selle NFT jaoks?", + "saveBtn": "Salvesta mustand", + "modalTitle": "NFT JSON", + "viewJSON": "Kuva JSON", + "broadcastSuccess": "Edukalt {{action}} teie NFT {{network}} plokiahel!", + "broadcastActionCreate": "loodud", + "broadcastActionUpdate": "uuendatud" + } + }, + "issueNFT": { + "form": { + "invalid": "kehtetu", + "header": "Selle NFT väljastamiseks avage Beet rahakott ja skannige allolev QR-kood.", + "back": "Mine tagasi", + "progress": "Palun oota...", + "success": "Teie NFT väljastamine õnnestus {{network}} plokiahel!", + "readyHeader": "Valmis väljastama NFT-sid Bitsharesi plokiahelas!", + "subHeader": "NFT väljastamise jätkamiseks täitke allolev vorm.", + "issueHeader": "Varade väljastamise vorm", + "issuerLabel": "Bitsharesi konto, mida kasutatakse NFT emiteerimiseks", + "assetID": "NFT vara ID", + "quantity": "Väljastatava NFT kogus", + "target": "Sihtkonto, millele NFT väljastada", + "completeHeader": "Täitke ülaltoodud vormi väljad.", + "completeBtn": "Esita", + "beetWait": "Ootan vastuseid BEET-viipadelt" + } + } + } \ No newline at end of file diff --git a/public/locales/et/images.json b/public/locales/et/images.json new file mode 100644 index 0000000..337deea --- /dev/null +++ b/public/locales/et/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Jätkake väljastamisega", + "ipfsBtn": "Lisage IPFS-i URL", + "header": "See tööriist võimaldab luua NFT-sid, mis kasutavad meediumisalvestusena IPFS-i.", + "typeLabel": "Määrake faili tüüp:", + "typeDesc": "See on vajalik NFT õigeks kuvamiseks.", + "ipfsURL": "Üksiku faili täielik IPFS-i URL:", + "back": "Mine tagasi", + "urlHeader": "IPFS-i URL-id", + "newHeader": "Kas te pole veel oma NFT-pilte IPFS-i üles laadinud?", + "serviceList": "Seejärel vaadake järgmisi IPFS-i kinnitamisteenuseid:" + } + } \ No newline at end of file diff --git a/public/locales/et/setup.json b/public/locales/et/setup.json new file mode 100644 index 0000000..163d102 --- /dev/null +++ b/public/locales/et/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "konto jaoks \"{{account}}\" mida sa teha tahad?", + "create": "Looge NFT", + "edit": "Redigeeri NFT-d", + "issue": "NFT-de väljaandmine", + "draft": "Laadi mustand", + "back": "tagasi", + "header2": "Sisestage konto ID/nimi:", + "chooseBEET": "Küsi PEEDIT", + "chooseSearch": "Otsige kontot käsitsi", + "beetPrompt": "Jätkamiseks ühendage Beetiga.", + "linkPrompt": "Jätkamiseks linkige Beetiga.", + "waiting": "Ootan kasutaja vastust BEET-kliendilt" + }, + "environment": { + "header": "Millist Bitsharesi plokiahelat soovite kasutada?", + "testnet": "Test võrku", + "production": "Põhivõrk" + }, + "loading": { + "message": "Kiireima plokiahela ühenduse leidmine, palun oodake." + }, + "offline": { + "header": "Tundub, et olete võrguühenduseta? ", + "exit": "Välju" + }, + "settings": { + "remove": "Eemalda", + "settings": "Seaded", + "linked": "Siin on teie praegu lingitud kontod", + "notLinked": "Peet ei ole seotud.", + "back": "Mine tagasi", + "language": "Kas vahetada keelt?" + }, + "app": { + "error": "Ilmnes probleem, lähtestage ja proovige uuesti.", + "reset": "Lähtesta rakendus" + } + } \ No newline at end of file diff --git a/public/locales/fr/beet.json b/public/locales/fr/beet.json new file mode 100644 index 0000000..1aee1bd --- /dev/null +++ b/public/locales/fr/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Connecté au portefeuille Beet avec succès.", + "linkPrompt": "Continuez en reliant cette application à votre portefeuille Beet ci-dessous.", + "linkButton": "Lien vers la betterave", + "beetWait": "En attente de réponse de l'invite BEET", + "backButton": "Dos" + }, + "connect": { + "remove": "Éliminer", + "previousBEET": "Quel compte BEET précédemment associé souhaitez-vous utiliser ?", + "newBEET": "Vous souhaitez utiliser un autre compte ?", + "newBtn": "Connectez-vous avec un nouveau compte", + "back": "Retourner", + "beetHeader": "Cet outil est conçu pour être utilisé avec le portefeuille Bitshares BEET.", + "beetSubheading": "Lancez-le et déverrouillez-le, puis cliquez sur le bouton de connexion ci-dessous pour continuer.", + "beetConnect": "Connectez-vous à la betterave", + "btsPrompt": "Vous n'avez pas encore installé le portefeuille Bitshares BEET ? ", + "btsGuide": "Une fois installé, créez un portefeuille et procédez à la connexion ci-dessus.", + "beetDownload": "Télécharger BETTERAVE", + "connecting": "Se connecter à BEET" + } + } \ No newline at end of file diff --git a/public/locales/fr/blockchain.json b/public/locales/fr/blockchain.json new file mode 100644 index 0000000..b73162b --- /dev/null +++ b/public/locales/fr/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Entrez votre ID / nom de compte blockchain pour continuer" + }, + "selectAsset": { + "lookup": "Rechercher des actifs émis par un utilisateur", + "fetching": "Récupérer des informations sur votre compte Bitshares", + "noResultsHeader": "Aucun actif émis trouvé", + "noResultsDesc": "Ce compte Bitshares n'a émis aucun NFT sur le BTS DEX.", + "notice": "Remarque : L'achat et la possession d'un NFT sur le BTS DEX ne vous accordent pas automatiquement les droits d'édition NFT.", + "selection": "Sélectionnez le NFT que vous souhaitez modifier", + "back": "Retourner", + "refresh": "Rafraîchir", + "nonNFT1": "Les actifs suivants ne sont pas encore des NFT", + "nonNFT2": "Pourquoi ne pas introduire la fonctionnalité NFT dans vos ressources Bitshares existantes ?" + }, + "accounts": { + "enterID": "Entrez un ID de compte pour continuer", + "fetchingAccount": "Recherche de compte", + "noAccount": "Aucun compte de ce type n'a pu être trouvé, vérifiez les entrées et réessayez.", + "searchResults": "Résultats de recherche", + "loading": "Chargement...", + "invalidID": "ID de compte non valide - Il doit commencer par \"1.2\". ", + "accountID": "ID de compte (par exemple 1.2.0)", + "existingID": "Continuer avec un ID de compte existant du compte Beet lié ?", + "beetReq": "Récupérer l'ID de compte du portefeuille Beet", + "beetLinked": "Continuez avec votre compte lié à Beet" + }, + "loadAsset": { + "noHeader": "Rien à modifier", + "noSubHeader": "Vous n'avez pas encore enregistré de brouillons NFT.", + "draftHeader": "Sélectionnez le brouillon NFT que vous souhaitez modifier", + "back": "Retourner" + }, + "wizard": { + "broadcastCreate": "Pour créer ce NFT, ouvrez votre portefeuille Bitshares Beet et scannez le code QR suivant", + "broadcastUpdate": "Pour mettre à jour ce NFT, ouvrez votre portefeuille Bitshares Beet et scannez le code QR suivant", + "inProgress": "S'il vous plaît, attendez...", + "back": "Retourner", + "form": { + "header": "Prêt à émettre des NFT sur la blockchain Bitshares !", + "subHeader": "Assurez-vous d'avoir suffisamment de jetons Bitshares pour couvrir les frais de réseau.", + "feeTip": "Pour économiser sur les frais, envisagez de devenir membre à vie de Bitshares.", + "poolTip": "Pensez également à retirer le pool de frais du NFT après sa création.", + "spec": "Spécification BTS NFT", + "imgHeader": "Détails de l'image", + "qtyImages": "Ce NFT contient actuellement les éléments suivants {{qty}} images:", + "changeImages": "Changer d'image", + "issuerLabel": "Compte Bitshares utilisé pour l'émission NFT", + "symbolLabel": "Symbole d'actif", + "symbolPlaceholder": "Symbole d'actif pour la navigation DEX", + "mainLabel": "Descriptif principal", + "mainPlaceholder": "Bref résumé des atouts pour DEX", + "snLabel": "Nom court", + "snPlaceholder": "Nom abrégé pour DEX", + "marketLabel": "Marché", + "marketPlaceholder": "Actif commercial principal, par ex. ", + "msLabel": "Alimentation maximale", + "precisionLabel": "Précision de l'actif (décimales)", + "nftHeader": "Détails NFT", + "titleLabel": "Titre NFT", + "titlePlaceholder": "Titre NFT", + "artistLabel": "Artiste NFT", + "artistPlaceholder": "Identité de l'artiste, nom d'utilisateur ou pseudonyme", + "narrativeLabel": "récit", + "narrativePlaceholder": "Récit", + "tagsLabel": "Balises NFT", + "tagsPlaceholder": "virgule,séparé,balises", + "typeLabel": "Type NFT", + "typePlaceholder": "NFT/ART/VISUEL", + "attestationLabel": "Attestation NFT", + "attestationPlaceholder": "Une attestation relative à ce NFT", + "ackLabel": "Remerciements NFT", + "ackPlaceholder": "Toutes les reconnaissances que vous devez faire", + "holderLicenceLabel": "Titulaires d'une licence NFT", + "holderLicencePlaceholder": "Titulaire d'une licence NFT", + "licenseLabel": "Licence NFT", + "licensePlaceholder": "Licence", + "sigHeader": "Texte signé", + "signedLabel": "Signature", + "signedPlaceholder": "Signature", + "signature": "Signature", + "cerHeader": "Taux de change de base", + "cerbaLabel": "Montant de base", + "cerbaIDLabel": "ID d'élément de base", + "cerqaLabel": "montant du devis", + "cerqaIDLabel": "ID d'actif de devis", + "permsHeader": "Autorisations", + "permsSubHeader": "Remarque : la désactivation des autorisations est une décision permanente.", + "disabledCMFPerm": "L'autorisation charge_market_fee a été définitivement désactivée.", + "cmfPLabel": "Activer les frais de marché (charge_market_fee)", + "disabledWL": "L'autorisation white_list a été définitivement désactivée.", + "wlLabel": "Exiger que les titulaires soient sur liste blanche (white_list)", + "disabledPOA": "L'autorisation override_authority a été définitivement désactivée.", + "poaLabel": "Le propriétaire de l'actif peut se transférer l'actif à lui-même (override_authority)", + "disabledTR": "L'autorisation transfer_restricted a été définitivement désactivée.", + "trLabel": "Le propriétaire de l'actif doit approuver tous les transferts (transfer_restricted)", + "disabledDC": "L'autorisation disable_confidential a été définitivement désactivée.", + "dcLabel": "Désactiver les transactions confidentielles (disable_confidential)", + "flagsHeader": "Drapeaux", + "flagsSubHeader": "Si une autorisation connexe ci-dessus est activée, ces indicateurs peuvent être modifiés à tout moment.", + "disabledLabel": "L'autorisation Relavent a été désactivée.", + "fcmfLabel": "Activer la facturation de frais de marché (charge_market_fee)", + "fwlLabel": "Exiger que les titulaires soient sur liste blanche (white_list)", + "foaLabel": "Le propriétaire de l'actif peut se transférer l'actif à lui-même (override_authority)", + "ftrLabel": "Le propriétaire de l'actif doit approuver tous les transferts (transfer_restricted)", + "fdcLabel": "Désactiver les transactions confidentielles (disable_confidential)", + "submitHeader": "Remplissez les champs du formulaire ci-dessus.", + "submitBtn": "Nous faire parvenir", + "waitBeet": "Attente des réponses des invites BEET", + "saveDraftLabel": "Sauvegarder votre progression pour ce NFT ?", + "saveBtn": "Enregistrer le brouillon", + "modalTitle": "NFTJSON", + "viewJSON": "Afficher JSON", + "broadcastSuccess": "Avec succès {{action}} votre NFT sur le {{network}} blockchain !", + "broadcastActionCreate": "créé", + "broadcastActionUpdate": "actualisé" + } + }, + "issueNFT": { + "form": { + "invalid": "invalide", + "header": "Pour émettre ce NFT, ouvrez le portefeuille Beet et scannez le code QR ci-dessous.", + "back": "Retourner", + "progress": "S'il vous plaît, attendez...", + "success": "Émis avec succès votre NFT sur le {{network}} blockchain !", + "readyHeader": "Prêt à émettre des NFT sur la blockchain Bitshares !", + "subHeader": "Remplissez le formulaire ci-dessous pour procéder à l'émission du NFT.", + "issueHeader": "Formulaire d'émission d'actifs", + "issuerLabel": "Compte Bitshares utilisé pour l'émission NFT", + "assetID": "ID d'actif NFT", + "quantity": "Quantité de NFT à émettre", + "target": "Compte cible auquel émettre le NFT", + "completeHeader": "Remplissez les champs du formulaire ci-dessus.", + "completeBtn": "Nous faire parvenir", + "beetWait": "Attente des réponses des invites BEET" + } + } + } \ No newline at end of file diff --git a/public/locales/fr/images.json b/public/locales/fr/images.json new file mode 100644 index 0000000..59f823c --- /dev/null +++ b/public/locales/fr/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Procéder à l'émission", + "ipfsBtn": "Ajouter une URL IPFS", + "header": "Cet outil permet la création de NFT qui utilisent IPFS comme stockage multimédia.", + "typeLabel": "Spécifiez le type de fichier :", + "typeDesc": "Ceci est nécessaire pour que le NFT s'affiche correctement.", + "ipfsURL": "URL IPFS complète pour un fichier individuel :", + "back": "Retourner", + "urlHeader": "URL IPFS", + "newHeader": "Vous n'avez pas encore téléchargé vos images NFT sur IPFS ?", + "serviceList": "Découvrez ensuite les services d'épinglage IPFS suivants :" + } + } \ No newline at end of file diff --git a/public/locales/fr/setup.json b/public/locales/fr/setup.json new file mode 100644 index 0000000..e7933b8 --- /dev/null +++ b/public/locales/fr/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "Pour le compte \"{{account}}\" Qu'est-ce que tu veux faire?", + "create": "Créer NFT", + "edit": "Modifier NFT", + "issue": "Émettre des NFT", + "draft": "Charger le brouillon", + "back": "Dos", + "header2": "Veuillez fournir un identifiant/nom de compte :", + "chooseBEET": "Demandez BEET", + "chooseSearch": "Rechercher un compte manuellement", + "beetPrompt": "Pour continuer, veuillez vous connecter à Beet.", + "linkPrompt": "Pour continuer, veuillez créer un lien avec Beet.", + "waiting": "Attente de la réponse de l'utilisateur du client BEET" + }, + "environment": { + "header": "Quelle blockchain Bitshares souhaitez-vous utiliser ?", + "testnet": "Réseau d'essai", + "production": "Réseau principal" + }, + "loading": { + "message": "Recherche de la connexion blockchain la plus rapide, veuillez patienter." + }, + "offline": { + "header": "Vous semblez être hors ligne ? ", + "exit": "Sortir" + }, + "settings": { + "remove": "Éliminer", + "settings": "Paramètres", + "linked": "Voici vos comptes actuellement liés", + "notLinked": "Betterave non liée.", + "back": "Retourner", + "language": "Changer de langue?" + }, + "app": { + "error": "Un problème a été rencontré, réinitialisez et réessayez.", + "reset": "Réinitialiser l'application" + } + } \ No newline at end of file diff --git a/public/locales/it/beet.json b/public/locales/it/beet.json new file mode 100644 index 0000000..493d615 --- /dev/null +++ b/public/locales/it/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Connesso al portafoglio Beet con successo.", + "linkPrompt": "Procedi con il collegamento di questa app al tuo portafoglio Beet di seguito.", + "linkButton": "Collegamento a barbabietola", + "beetWait": "In attesa di risposta dal prompt BEET", + "backButton": "Di ritorno" + }, + "connect": { + "remove": "Rimuovere", + "previousBEET": "Quale account BEET precedentemente collegato desideri utilizzare?", + "newBEET": "Vuoi usare un account diverso?", + "newBtn": "Connettiti con un nuovo account", + "back": "Torna indietro", + "beetHeader": "Questo strumento è progettato per essere utilizzato con Bitshares BEET Wallet.", + "beetSubheading": "Avvialo e sbloccalo, quindi fai clic sul pulsante di connessione in basso per procedere.", + "beetConnect": "Connettiti a barbabietola", + "btsPrompt": "Non hai ancora installato il portafoglio Bitshares BEET? ", + "btsGuide": "Una volta installato, crea un portafoglio e procedi alla connessione sopra.", + "beetDownload": "Scarica BARBABIETOLA", + "connecting": "Connessione a BEET" + } + } \ No newline at end of file diff --git a/public/locales/it/blockchain.json b/public/locales/it/blockchain.json new file mode 100644 index 0000000..b45dc05 --- /dev/null +++ b/public/locales/it/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Inserisci il tuo ID/nome dell'account blockchain per procedere" + }, + "selectAsset": { + "lookup": "Cerca asset emessi da un utente", + "fetching": "Recupero delle informazioni sul tuo account Bitshares", + "noResultsHeader": "Nessun asset emesso trovato", + "noResultsDesc": "Questo account Bitshares non ha emesso alcun NFT sul BTS DEX.", + "notice": "Nota: l'acquisto e il possesso di un NFT su BTS DEX non ti garantisce automaticamente i diritti di modifica NFT.", + "selection": "Seleziona l'NFT che desideri modificare", + "back": "Torna indietro", + "refresh": "ricaricare", + "nonNFT1": "I seguenti asset non sono ancora NFT", + "nonNFT2": "Perché non introdurre la funzionalità NFT nelle tue risorse Bitshares esistenti?" + }, + "accounts": { + "enterID": "Inserisci un ID account per procedere", + "fetchingAccount": "Ricerca del conto", + "noAccount": "Non è stato possibile trovare alcun account di questo tipo, controllare l'input e riprovare.", + "searchResults": "Risultati di ricerca", + "loading": "Caricamento in corso...", + "invalidID": "ID account non valido: deve iniziare con \"1.2\". ", + "accountID": "ID account (ad es. 1.2.0)", + "existingID": "Procedere con un ID account esistente dall'account Beet collegato?", + "beetReq": "Recupera l'ID dell'account dal portafoglio Beet", + "beetLinked": "Procedi con il tuo account collegato a Beet" + }, + "loadAsset": { + "noHeader": "Niente da modificare", + "noSubHeader": "Non hai ancora salvato alcuna bozza NFT.", + "draftHeader": "Seleziona la bozza NFT che desideri modificare", + "back": "Torna indietro" + }, + "wizard": { + "broadcastCreate": "Per creare questo NFT, apri il tuo portafoglio Bitshares Beet e scansiona il seguente codice QR", + "broadcastUpdate": "Per aggiornare questo NFT, apri il tuo portafoglio Bitshares Beet e scansiona il seguente codice QR", + "inProgress": "Attendere prego...", + "back": "Torna indietro", + "form": { + "header": "Pronto a emettere NFT sulla blockchain di Bitshares!", + "subHeader": "Assicurati di avere abbastanza token Bitshares per coprire le spese di rete.", + "feeTip": "Per risparmiare sulle commissioni, considera di ottenere un abbonamento a vita a Bitshares.", + "poolTip": "Ricorda inoltre di ritirare il pool di commissioni dell'NFT dopo la creazione.", + "spec": "Specifiche BTS NFT", + "imgHeader": "Dettagli dell'immagine", + "qtyImages": "Questo NFT attualmente contiene quanto segue {{qty}} immagini:", + "changeImages": "Cambia immagini", + "issuerLabel": "Conto Bitshares utilizzato per l'emissione di NFT", + "symbolLabel": "Simbolo della risorsa", + "symbolPlaceholder": "Simbolo della risorsa per la navigazione DEX", + "mainLabel": "Descrizione principale", + "mainPlaceholder": "Breve riepilogo delle risorse per DEX", + "snLabel": "Nome corto", + "snPlaceholder": "Nome abbreviato per DEX", + "marketLabel": "Mercato", + "marketPlaceholder": "Attività di trading primaria, ad es. ", + "msLabel": "Massima offerta", + "precisionLabel": "Precisione asset (cifre decimali)", + "nftHeader": "Dettagli NFT", + "titleLabel": "Titolo NFT", + "titlePlaceholder": "Titolo NFT", + "artistLabel": "Artista NFT", + "artistPlaceholder": "Identità dell'artista, nome utente o pseudonimo", + "narrativeLabel": "narrativa", + "narrativePlaceholder": "Narrativa", + "tagsLabel": "Tag NFT", + "tagsPlaceholder": "virgola, separati, tag", + "typeLabel": "Tipo NFT", + "typePlaceholder": "NFT/ARTE/VISIVO", + "attestationLabel": "Attestazione NFT", + "attestationPlaceholder": "Un'attestazione riguardante questo NFT", + "ackLabel": "Riconoscimenti NFT", + "ackPlaceholder": "Tutti i riconoscimenti che devi fare", + "holderLicenceLabel": "Licenza per titolari di NFT", + "holderLicencePlaceholder": "Licenza titolare NFT", + "licenseLabel": "Licenza NFT", + "licensePlaceholder": "Licenza", + "sigHeader": "Testo firmato", + "signedLabel": "Firma", + "signedPlaceholder": "firma", + "signature": "Firma", + "cerHeader": "Tasso di cambio principale", + "cerbaLabel": "Importo base", + "cerbaIDLabel": "ID risorsa di base", + "cerqaLabel": "importo del preventivo", + "cerqaIDLabel": "ID risorsa quotazione", + "permsHeader": "Autorizzazioni", + "permsSubHeader": "Nota: la disabilitazione delle autorizzazioni è una decisione definitiva.", + "disabledCMFPerm": "L'autorizzazione charge_market_fee è stata disabilitata in modo permanente.", + "cmfPLabel": "Abilita commissione di mercato (charge_market_fee)", + "disabledWL": "L'autorizzazione white_list è stata disabilitata in modo permanente.", + "wlLabel": "Richiedi che i titolari siano inseriti nella lista bianca (white_list)", + "disabledPOA": "L'autorizzazione override_authority è stata disabilitata in modo permanente.", + "poaLabel": "Il proprietario dell'asset può trasferire nuovamente l'asset a se stesso (override_authority)", + "disabledTR": "L'autorizzazione transfer_restricted è stata disabilitata in modo permanente.", + "trLabel": "Il proprietario della risorsa deve approvare tutti i trasferimenti (transfer_restricted)", + "disabledDC": "L'autorizzazione disable_confidential è stata disabilitata in modo permanente.", + "dcLabel": "Disabilita le transazioni riservate (disable_confidential)", + "flagsHeader": "Bandiere", + "flagsSubHeader": "Se un'autorizzazione correlata sopra è abilitata, questi flag possono essere modificati in qualsiasi momento.", + "disabledLabel": "L'autorizzazione Relavent è stata disabilitata.", + "fcmfLabel": "Abilita l'addebito di una commissione di mercato (charge_market_fee)", + "fwlLabel": "Richiedi che i titolari siano inseriti nella lista bianca (white_list)", + "foaLabel": "Il proprietario dell'asset può trasferire nuovamente l'asset a se stesso (override_authority)", + "ftrLabel": "Il proprietario della risorsa deve approvare tutti i trasferimenti (transfer_restricted)", + "fdcLabel": "Disabilita le transazioni riservate (disable_confidential)", + "submitHeader": "Compila i campi del modulo sopra.", + "submitBtn": "Invia", + "waitBeet": "In attesa di risposte dai prompt BEET", + "saveDraftLabel": "Salvare i tuoi progressi per questo NFT?", + "saveBtn": "Salva la bozza", + "modalTitle": "NFT JSON", + "viewJSON": "Visualizza JSON", + "broadcastSuccess": "Con successo {{action}} il tuo NFT sul {{network}} blockchain!", + "broadcastActionCreate": "creato", + "broadcastActionUpdate": "aggiornato" + } + }, + "issueNFT": { + "form": { + "invalid": "non valido", + "header": "Per emettere questo NFT, apri il portafoglio Beet e scansiona il codice QR sottostante.", + "back": "Torna indietro", + "progress": "Attendere prego...", + "success": "Emesso con successo il tuo NFT su {{network}} blockchain!", + "readyHeader": "Pronto a emettere NFT sulla blockchain di Bitshares!", + "subHeader": "Compila il modulo sottostante per procedere con l'emissione di NFT.", + "issueHeader": "Modulo di emissione di beni", + "issuerLabel": "Conto Bitshares utilizzato per l'emissione di NFT", + "assetID": "ID risorsa NFT", + "quantity": "Quantità di NFT da emettere", + "target": "Account di destinazione a cui emettere NFT", + "completeHeader": "Compila i campi del modulo sopra.", + "completeBtn": "Invia", + "beetWait": "In attesa di risposte dai prompt BEET" + } + } + } \ No newline at end of file diff --git a/public/locales/it/images.json b/public/locales/it/images.json new file mode 100644 index 0000000..98755ba --- /dev/null +++ b/public/locales/it/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Procedere con l'emissione", + "ipfsBtn": "Aggiungi URL IPFS", + "header": "Questo strumento consente la creazione di NFT che utilizzano IPFS come archivio multimediale.", + "typeLabel": "Specifica il tipo di file:", + "typeDesc": "Questo è necessario per visualizzare correttamente l'NFT.", + "ipfsURL": "URL IPFS completo per un singolo file:", + "back": "Torna indietro", + "urlHeader": "URL IPFS", + "newHeader": "Non hai ancora caricato le tue immagini NFT su IPFS?", + "serviceList": "Quindi controlla i seguenti servizi di pinning IPFS:" + } + } \ No newline at end of file diff --git a/public/locales/it/setup.json b/public/locales/it/setup.json new file mode 100644 index 0000000..dc4bfd1 --- /dev/null +++ b/public/locales/it/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "Per il conto\"{{account}}\" Che cosa vuoi fare?", + "create": "Crea NFT", + "edit": "Modifica NFT", + "issue": "Emetti NFT", + "draft": "Carica bozza", + "back": "Di ritorno", + "header2": "Si prega di fornire un ID account/nome:", + "chooseBEET": "Chiedi a barbabietola", + "chooseSearch": "Cerca account manualmente", + "beetPrompt": "Per continuare, connettiti a Beet.", + "linkPrompt": "Per continuare, collegarsi a Beet.", + "waiting": "In attesa della risposta dell'utente dal client BEET" + }, + "environment": { + "header": "Quale blockchain di Bitshares vuoi utilizzare?", + "testnet": "Rete di prova", + "production": "Rete principale" + }, + "loading": { + "message": "Ricerca della connessione blockchain più veloce, attendere..." + }, + "offline": { + "header": "Sembra che tu sia offline? ", + "exit": "Uscita" + }, + "settings": { + "remove": "Rimuovere", + "settings": "Impostazioni", + "linked": "Ecco i tuoi account attualmente collegati", + "notLinked": "Barbabietola non legata.", + "back": "Torna indietro", + "language": "Cambia lingua?" + }, + "app": { + "error": "Si è verificato un problema, reimpostare e riprovare.", + "reset": "Reimposta l'app" + } + } \ No newline at end of file diff --git a/public/locales/ja/beet.json b/public/locales/ja/beet.json new file mode 100644 index 0000000..f650084 --- /dev/null +++ b/public/locales/ja/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Beet ウォレットに正常に接続されました。", + "linkPrompt": "このアプリを以下の Beet ウォレットにリンクしてください。", + "linkButton": "ビートへのリンク", + "beetWait": "BEETプロンプトからの応答待ち", + "backButton": "戻る" + }, + "connect": { + "remove": "削除する", + "previousBEET": "以前にリンクしたどの BEET アカウントを使用しますか?", + "newBEET": "別のアカウントを使用しますか?", + "newBtn": "新しいアカウントに接続", + "back": "戻る", + "beetHeader": "このツールは、Bitshares BEET Wallet で使用するために設計されています。", + "beetSubheading": "起動してロックを解除し、下の接続ボタンをクリックして続行します。", + "beetConnect": "ビートに接続", + "btsPrompt": "Bitshares BEET ウォレットをまだインストールしていませんか?", + "btsGuide": "インストールしたら、ウォレットを作成し、上記の接続に進みます。", + "beetDownload": "ビートをダウンロード", + "connecting": "BEETに接続する" + } + } \ No newline at end of file diff --git a/public/locales/ja/blockchain.json b/public/locales/ja/blockchain.json new file mode 100644 index 0000000..ca51190 --- /dev/null +++ b/public/locales/ja/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "ブロックチェーン アカウント ID/名前を入力して続行します" + }, + "selectAsset": { + "lookup": "ユーザーが発行したルックアップ アセット", + "fetching": "Bitshares アカウントの情報を取得しています", + "noResultsHeader": "発行済みアセットが見つかりません", + "noResultsDesc": "この Bitshares アカウントは、BTS DEX で NFT を発行していません。", + "notice": "注: BTS DEX で NFT を購入して所有しても、NFT の編集権限が自動的に付与されるわけではありません。", + "selection": "編集したいNFTを選択", + "back": "戻る", + "refresh": "リフレッシュ", + "nonNFT1": "次のアセットはまだ NFT ではありません", + "nonNFT2": "既存の Bitshares アセットに NFT 機能を導入してみませんか?" + }, + "accounts": { + "enterID": "アカウント ID を入力して続行します", + "fetchingAccount": "アカウントの検索", + "noAccount": "そのようなアカウントは見つかりませんでした。入力を確認して、もう一度お試しください。", + "searchResults": "の検索結果", + "loading": "読み込んでいます...", + "invalidID": "無効なアカウント ID - 「1.2」で始まる必要があります。", + "accountID": "アカウント ID (例: 1.2.0)", + "existingID": "リンクされた Beet アカウントの既存のアカウント ID で続行しますか?", + "beetReq": "Beet ウォレットからアカウント ID を取得する", + "beetLinked": "Beet にリンクされたアカウントで続行します" + }, + "loadAsset": { + "noHeader": "編集するものがありません", + "noSubHeader": "NFT ドラフトをまだ保存していません。", + "draftHeader": "編集したいNFTドラフトを選択", + "back": "戻る" + }, + "wizard": { + "broadcastCreate": "この NFT を作成するには、Bitshares Beet ウォレットを開き、次の QR コードをスキャンします", + "broadcastUpdate": "この NFT を更新するには、Bitshares Beet ウォレットを開き、次の QR コードをスキャンします", + "inProgress": "お待ちください...", + "back": "戻る", + "form": { + "header": "Bitshares ブロックチェーンで NFT を発行する準備ができました!", + "subHeader": "ネットワーク料金をカバーするのに十分な Bitshares トークンがあることを確認してください。", + "feeTip": "手数料を節約するには、Bitshares の生涯メンバーシップを取得することを検討してください。", + "poolTip": "また、作成後にNFTの手数料プールを引き出すことを忘れないでください.", + "spec": "BTS NFT 仕様", + "imgHeader": "画像の詳細", + "qtyImages": "現在、この NFT には次のものが含まれています。 {{qty}} 画像:", + "changeImages": "画像を変更する", + "issuerLabel": "NFTの発行に使用されるBitsharesアカウント", + "symbolLabel": "資産記号", + "symbolPlaceholder": "DEX ナビゲーションのアセット シンボル", + "mainLabel": "主な説明", + "mainPlaceholder": "DEX の資産概要", + "snLabel": "略称", + "snPlaceholder": "DEXの略称", + "marketLabel": "市場", + "marketPlaceholder": "一次取引資産", + "msLabel": "最大供給量", + "precisionLabel": "アセットの精度 (小数点以下の桁数)", + "nftHeader": "NFTの詳細", + "titleLabel": "NFTタイトル", + "titlePlaceholder": "NFTタイトル", + "artistLabel": "NFTアーティスト", + "artistPlaceholder": "アーティストの身元、ユーザー名またはペンネーム", + "narrativeLabel": "物語", + "narrativePlaceholder": "物語", + "tagsLabel": "NFTタグ", + "tagsPlaceholder": "カンマ区切り、タグ", + "typeLabel": "NFTタイプ", + "typePlaceholder": "NFT/アート/ビジュアル", + "attestationLabel": "NFT認証", + "attestationPlaceholder": "このNFTに関する証明書", + "ackLabel": "NFTの謝辞", + "ackPlaceholder": "あなたがしなければならない謝辞", + "holderLicenceLabel": "NFTホルダーライセンス", + "holderLicencePlaceholder": "NFTホルダーライセンス", + "licenseLabel": "NFTライセンス", + "licensePlaceholder": "ライセンス", + "sigHeader": "署名付きテキスト", + "signedLabel": "サイン", + "signedPlaceholder": "サイン", + "signature": "サイン", + "cerHeader": "コア為替レート", + "cerbaLabel": "基準額", + "cerbaIDLabel": "ベース アセット ID", + "cerqaLabel": "お見積り金額", + "cerqaIDLabel": "見積資産 ID", + "permsHeader": "権限", + "permsSubHeader": "注: パーミッションの無効化は永続的な決定です。", + "disabledCMFPerm": "charge_market_fee パーミッションは完全に無効化されました。", + "cmfPLabel": "市場手数料を有効にする (charge_market_fee)", + "disabledWL": "white_list パーミッションは永久に無効化されました。", + "wlLabel": "所有者をホワイトリストに登録する必要があります (white_list)", + "disabledPOA": "override_authority パーミッションは永久に無効化されました。", + "poaLabel": "アセット所有者はアセットを自分自身に譲渡できます (override_authority)", + "disabledTR": "transfer_restricted パーミッションは永久に無効化されました。", + "trLabel": "資産所有者はすべての転送を承認する必要があります (transfer_restricted)", + "disabledDC": "disable_confidential 権限が永久に無効になりました。", + "dcLabel": "機密トランザクションを無効にする (disable_confidential)", + "flagsHeader": "フラグ", + "flagsSubHeader": "上記の関連する権限が有効になっている場合、これらのフラグはいつでも変更できます。", + "disabledLabel": "関連する権限が無効になりました。", + "fcmfLabel": "市場手数料の請求を有効にする (charge_market_fee)", + "fwlLabel": "所有者をホワイトリストに登録する必要があります (white_list)", + "foaLabel": "アセット所有者はアセットを自分自身に譲渡できます (override_authority)", + "ftrLabel": "資産所有者はすべての転送を承認する必要があります (transfer_restricted)", + "fdcLabel": "機密トランザクションを無効にする (disable_confidential)", + "submitHeader": "上記のフォームのフィールドに入力します。", + "submitBtn": "送信", + "waitBeet": "BEETプロンプトからの応答待ち", + "saveDraftLabel": "この NFT の進行状況を保存しますか?", + "saveBtn": "下書きを保存", + "modalTitle": "NFT JSON", + "viewJSON": "JSON を表示", + "broadcastSuccess": "無事 {{action}} あなたのNFT {{network}} ブロックチェーン!", + "broadcastActionCreate": "作成した", + "broadcastActionUpdate": "更新しました" + } + }, + "issueNFT": { + "form": { + "invalid": "無効", + "header": "この NFT を発行するには、Beet ウォレットを開き、以下の QR コードをスキャンします。", + "back": "戻る", + "progress": "お待ちください...", + "success": "で NFT が正常に発行されました {{network}} ブロックチェーン!", + "readyHeader": "Bitshares ブロックチェーンで NFT を発行する準備ができました!", + "subHeader": "NFT の発行を続行するには、以下のフォームに記入してください。", + "issueHeader": "資産発行フォーム", + "issuerLabel": "NFTの発行に使用されるBitsharesアカウント", + "assetID": "NFTアセットID", + "quantity": "発行するNFTの数量", + "target": "NFT発行対象口座", + "completeHeader": "上記のフォームのフィールドに入力します。", + "completeBtn": "送信", + "beetWait": "BEETプロンプトからの応答待ち" + } + } + } \ No newline at end of file diff --git a/public/locales/ja/images.json b/public/locales/ja/images.json new file mode 100644 index 0000000..7f1dbc4 --- /dev/null +++ b/public/locales/ja/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "発行を進める", + "ipfsBtn": "IPFS URL を追加", + "header": "このツールを使用すると、IPFS をメディア ストレージとして使用する NFT を作成できます。", + "typeLabel": "ファイルの種類を指定します。", + "typeDesc": "これは、NFT を正しく表示するために必要です。", + "ipfsURL": "個々のファイルの完全な IPFS URL:", + "back": "戻る", + "urlHeader": "IPFS URL", + "newHeader": "NFT 画像を IPFS にまだアップロードしていませんか?", + "serviceList": "次に、次の IPFS ピニング サービスを確認してください。" + } + } \ No newline at end of file diff --git a/public/locales/ja/setup.json b/public/locales/ja/setup.json new file mode 100644 index 0000000..c8b3173 --- /dev/null +++ b/public/locales/ja/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "アカウントの「{{account}}」何をしたいですか?", + "create": "NFTの作成", + "edit": "NFT を編集", + "issue": "NFTの発行", + "draft": "下書きを読み込む", + "back": "戻る", + "header2": "アカウント ID/名前を入力してください:", + "chooseBEET": "BEETに聞く", + "chooseSearch": "アカウントを手動で検索する", + "beetPrompt": "続行するには、Beet に接続してください。", + "linkPrompt": "続行するには、Beet にリンクしてください。", + "waiting": "BEET クライアントからのユーザーの応答を待っています" + }, + "environment": { + "header": "どの Bitshares ブロックチェーンを使用しますか?", + "testnet": "テスト ネットワーク", + "production": "主なネットワーク" + }, + "loading": { + "message": "最速のブロックチェーン接続を見つけています。お待ちください.." + }, + "offline": { + "header": "オフラインのようですか?", + "exit": "出口" + }, + "settings": { + "remove": "削除する", + "settings": "設定", + "linked": "現在リンクされているアカウントは次のとおりです", + "notLinked": "ビートはリンクされていません。", + "back": "戻る", + "language": "言語を変更?" + }, + "app": { + "error": "問題が発生しました。リセットして、もう一度お試しください。", + "reset": "アプリをリセット" + } + } \ No newline at end of file diff --git a/public/locales/ko/beet.json b/public/locales/ko/beet.json new file mode 100644 index 0000000..ceb6699 --- /dev/null +++ b/public/locales/ko/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Beet 지갑에 성공적으로 연결되었습니다.", + "linkPrompt": "이 앱을 아래의 Beet 지갑에 연결하십시오.", + "linkButton": "비트 링크", + "beetWait": "BEET 프롬프트에서 응답 대기 중", + "backButton": "뒤쪽에" + }, + "connect": { + "remove": "제거하다", + "previousBEET": "이전에 연결된 BEET 계정 중 어떤 것을 사용하시겠습니까?", + "newBEET": "다른 계정을 사용하시겠습니까?", + "newBtn": "새 계정으로 연결", + "back": "돌아가기", + "beetHeader": "이 도구는 Bitshares BEET 지갑과 함께 사용하도록 설계되었습니다.", + "beetSubheading": "실행하고 잠금을 해제한 다음 아래의 연결 버튼을 클릭하여 계속 진행합니다.", + "beetConnect": "사탕무에 연결", + "btsPrompt": "아직 Bitshares BEET 지갑이 설치되어 있지 않습니까? ", + "btsGuide": "설치가 완료되면 지갑을 생성하고 위의 연결을 진행합니다.", + "beetDownload": "비트 다운로드", + "connecting": "BEET에 연결" + } + } \ No newline at end of file diff --git a/public/locales/ko/blockchain.json b/public/locales/ko/blockchain.json new file mode 100644 index 0000000..859e64e --- /dev/null +++ b/public/locales/ko/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "계속 진행하려면 블록체인 계정 ID/이름을 입력하세요." + }, + "selectAsset": { + "lookup": "사용자가 발행한 자산 조회", + "fetching": "Bitshares 계정에서 정보 검색", + "noResultsHeader": "발행된 자산이 없습니다.", + "noResultsDesc": "이 Bitshares 계정은 BTS DEX에서 NFT를 발행하지 않았습니다.", + "notice": "참고: BTS DEX에서 NFT를 구매하고 소유한다고 해서 자동으로 NFT 편집 권한이 부여되는 것은 아닙니다.", + "selection": "편집하려는 NFT를 선택합니다.", + "back": "돌아가기", + "refresh": "새로 고치다", + "nonNFT1": "다음 자산은 아직 NFT가 아닙니다.", + "nonNFT2": "기존 Bitshares 자산에 NFT 기능을 도입하지 않겠습니까?" + }, + "accounts": { + "enterID": "계속하려면 계정 ID를 입력하세요.", + "fetchingAccount": "계정 조회", + "noAccount": "해당 계정을 찾을 수 없습니다. 입력 내용을 확인하고 다시 시도하십시오.", + "searchResults": "검색 결과", + "loading": "로드 중...", + "invalidID": "잘못된 계정 ID - '1.2'로 시작해야 합니다. ", + "accountID": "계정 ID(예: 1.2.0)", + "existingID": "연결된 Beet 계정의 기존 계정 ID로 진행하시겠습니까?", + "beetReq": "비트 지갑에서 계정 ID 가져오기", + "beetLinked": "Beet 연결 계정으로 진행" + }, + "loadAsset": { + "noHeader": "수정할 내용 없음", + "noSubHeader": "아직 NFT 초안을 저장하지 않았습니다.", + "draftHeader": "편집하려는 NFT 초안을 선택하십시오.", + "back": "돌아가기" + }, + "wizard": { + "broadcastCreate": "이 NFT를 생성하려면 Bitshares Beet 지갑을 열고 다음 QR 코드를 스캔하세요.", + "broadcastUpdate": "이 NFT를 업데이트하려면 Bitshares Beet 지갑을 열고 다음 QR 코드를 스캔하세요.", + "inProgress": "기다리세요...", + "back": "돌아가기", + "form": { + "header": "Bitshares 블록체인에서 NFT를 발행할 준비가 되었습니다!", + "subHeader": "네트워크 수수료를 충당하기에 충분한 Bitshares 토큰이 있는지 확인하십시오.", + "feeTip": "수수료를 절약하려면 Bitshares 평생 멤버십을 받는 것이 좋습니다.", + "poolTip": "또한 생성 후 NFT의 수수료 풀을 인출하는 것을 잊지 마십시오.", + "spec": "BTS NFT 사양", + "imgHeader": "이미지 세부정보", + "qtyImages": "이 NFT에는 현재 다음이 포함되어 있습니다. {{qty}} 이미지:", + "changeImages": "이미지 변경", + "issuerLabel": "NFT 발행에 사용되는 Bitshares 계정", + "symbolLabel": "자산 기호", + "symbolPlaceholder": "DEX 탐색을 위한 자산 기호", + "mainLabel": "주요 설명", + "mainPlaceholder": "DEX에 대한 간략한 자산 요약", + "snLabel": "짧은 이름", + "snPlaceholder": "DEX의 약칭", + "marketLabel": "시장", + "marketPlaceholder": "주요 거래 자산 예: ", + "msLabel": "최대 공급", + "precisionLabel": "자산 정밀도(소수점)", + "nftHeader": "NFT 세부 정보", + "titleLabel": "NFT 제목", + "titlePlaceholder": "NFT 제목", + "artistLabel": "NFT 아티스트", + "artistPlaceholder": "아티스트 ID, 사용자 이름 또는 가명", + "narrativeLabel": "이야기", + "narrativePlaceholder": "이야기", + "tagsLabel": "NFT 태그", + "tagsPlaceholder": "쉼표,구분,태그", + "typeLabel": "NFT 유형", + "typePlaceholder": "NFT/아트/비주얼", + "attestationLabel": "NFT 증명", + "attestationPlaceholder": "이 NFT에 대한 증명", + "ackLabel": "NFT 승인", + "ackPlaceholder": "귀하가 확인해야 할 사항", + "holderLicenceLabel": "NFT 소지자 라이선스", + "holderLicencePlaceholder": "NFT 보유자 라이선스", + "licenseLabel": "NFT 라이선스", + "licensePlaceholder": "특허", + "sigHeader": "서명된 텍스트", + "signedLabel": "서명", + "signedPlaceholder": "서명", + "signature": "서명", + "cerHeader": "핵심환율", + "cerbaLabel": "기본 금액", + "cerbaIDLabel": "기본 자산 ID", + "cerqaLabel": "견적 금액", + "cerqaIDLabel": "견적 자산 ID", + "permsHeader": "권한", + "permsSubHeader": "참고: 권한 비활성화는 영구적인 결정입니다.", + "disabledCMFPerm": "charge_market_fee 권한이 영구적으로 비활성화되었습니다.", + "cmfPLabel": "시장 수수료 활성화(charge_market_fee)", + "disabledWL": "white_list 권한이 영구적으로 비활성화되었습니다.", + "wlLabel": "보유자가 화이트리스트에 있어야 함(white_list)", + "disabledPOA": "override_authority 권한이 영구적으로 비활성화되었습니다.", + "poaLabel": "자산 소유자는 자산을 자신에게 다시 양도할 수 있습니다(override_authority).", + "disabledTR": "transfer_restricted 권한이 영구적으로 비활성화되었습니다.", + "trLabel": "자산 소유자가 모든 이전을 승인해야 함(transfer_restricted)", + "disabledDC": "disable_confidential 권한이 영구적으로 비활성화되었습니다.", + "dcLabel": "기밀 트랜잭션 비활성화(disable_confidential)", + "flagsHeader": "플래그", + "flagsSubHeader": "위의 관련 권한이 활성화된 경우 이러한 플래그는 언제든지 변경할 수 있습니다.", + "disabledLabel": "관련 권한이 비활성화되었습니다.", + "fcmfLabel": "시장 수수료 부과 활성화(charge_market_fee)", + "fwlLabel": "보유자가 화이트리스트에 있어야 함(white_list)", + "foaLabel": "자산 소유자는 자산을 자신에게 다시 양도할 수 있습니다(override_authority).", + "ftrLabel": "자산 소유자가 모든 이전을 승인해야 함(transfer_restricted)", + "fdcLabel": "기밀 트랜잭션 비활성화(disable_confidential)", + "submitHeader": "위 양식의 필드를 작성하십시오.", + "submitBtn": "제출하다", + "waitBeet": "BEET 프롬프트의 응답 대기 중", + "saveDraftLabel": "이 NFT의 진행 상황을 저장하시겠습니까?", + "saveBtn": "임시 보관함에 저장", + "modalTitle": "NFT JSON", + "viewJSON": "JSON 보기", + "broadcastSuccess": "성공적으로 {{action}} 당신의 NFT에 {{network}} 블록체인!", + "broadcastActionCreate": "만들어진", + "broadcastActionUpdate": "업데이트" + } + }, + "issueNFT": { + "form": { + "invalid": "유효하지 않은", + "header": "이 NFT를 발행하려면 비트 지갑을 열고 아래 QR 코드를 스캔하십시오.", + "back": "돌아가기", + "progress": "기다리세요...", + "success": "에서 NFT를 성공적으로 발행했습니다. {{network}} 블록체인!", + "readyHeader": "Bitshares 블록체인에서 NFT를 발행할 준비가 되었습니다!", + "subHeader": "NFT 발행을 진행하려면 아래 양식을 작성하십시오.", + "issueHeader": "자산 발행 양식", + "issuerLabel": "NFT 발행에 사용되는 Bitshares 계정", + "assetID": "NFT 자산 ID", + "quantity": "발행할 NFT 수량", + "target": "NFT를 발행할 대상 계정", + "completeHeader": "위 양식의 필드를 작성하십시오.", + "completeBtn": "제출하다", + "beetWait": "BEET 프롬프트의 응답 대기 중" + } + } + } \ No newline at end of file diff --git a/public/locales/ko/images.json b/public/locales/ko/images.json new file mode 100644 index 0000000..a3c685f --- /dev/null +++ b/public/locales/ko/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "발급 진행", + "ipfsBtn": "IPFS URL 추가", + "header": "이 도구를 사용하면 IPFS를 미디어 저장소로 사용하는 NFT를 만들 수 있습니다.", + "typeLabel": "파일 형식을 지정합니다.", + "typeDesc": "이것은 NFT가 올바르게 표시되는 데 필요합니다.", + "ipfsURL": "개별 파일의 전체 IPFS URL:", + "back": "돌아가기", + "urlHeader": "IPFS URL", + "newHeader": "아직 NFT 이미지를 IPFS에 업로드하지 않았습니까?", + "serviceList": "그런 다음 다음 IPFS 고정 서비스를 확인하십시오." + } + } \ No newline at end of file diff --git a/public/locales/ko/setup.json b/public/locales/ko/setup.json new file mode 100644 index 0000000..439bf98 --- /dev/null +++ b/public/locales/ko/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "계정에 대해 \"{{account}}\" 뭐하고 싶어?", + "create": "NFT 만들기", + "edit": "NFT 편집", + "issue": "NFT 발행", + "draft": "초안 로드", + "back": "뒤쪽에", + "header2": "계정 ID/이름을 입력하십시오:", + "chooseBEET": "BEET에게 물어보세요", + "chooseSearch": "수동으로 계정 조회", + "beetPrompt": "계속하려면 Beet에 연결하세요.", + "linkPrompt": "계속하려면 Beet에 연결하세요.", + "waiting": "BEET 클라이언트의 사용자 응답 대기 중" + }, + "environment": { + "header": "어떤 Bitshares 블록체인을 사용하고 싶습니까?", + "testnet": "테스트 네트워크", + "production": "메인 네트워크" + }, + "loading": { + "message": "가장 빠른 블록체인 연결을 찾는 중입니다. 잠시만 기다려 주세요.." + }, + "offline": { + "header": "오프라인 상태인 것 같나요? ", + "exit": "출구" + }, + "settings": { + "remove": "제거하다", + "settings": "설정", + "linked": "현재 연결된 계정은 다음과 같습니다.", + "notLinked": "비트가 연결되지 않았습니다.", + "back": "돌아가기", + "language": "언어를 변경하시겠습니까?" + }, + "app": { + "error": "문제가 발생했습니다. 재설정하고 다시 시도하세요.", + "reset": "앱 재설정" + } + } \ No newline at end of file diff --git a/public/locales/pt/beet.json b/public/locales/pt/beet.json new file mode 100644 index 0000000..c4f91a0 --- /dev/null +++ b/public/locales/pt/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "Conectado à carteira Beet com sucesso.", + "linkPrompt": "Prossiga com a vinculação deste aplicativo à sua carteira Beet abaixo.", + "linkButton": "Link para Beterraba", + "beetWait": "Aguardando a resposta do prompt do BEET", + "backButton": "Voltar" + }, + "connect": { + "remove": "Retirar", + "previousBEET": "Qual conta BEET vinculada anteriormente você deseja usar?", + "newBEET": "Quer usar uma conta diferente?", + "newBtn": "Conectar com nova conta", + "back": "Volte", + "beetHeader": "Esta ferramenta foi projetada para uso com a Carteira Bitshares BEET.", + "beetSubheading": "Inicie e desbloqueie-o e, em seguida, clique no botão de conexão abaixo para continuar.", + "beetConnect": "Conecte-se à Beterraba", + "btsPrompt": "Ainda não tem a carteira Bitshares BEET instalada? ", + "btsGuide": "Depois de instalado, crie uma carteira e prossiga para conectar-se acima.", + "beetDownload": "Baixar BEET", + "connecting": "Conectando ao BEET" + } + } \ No newline at end of file diff --git a/public/locales/pt/blockchain.json b/public/locales/pt/blockchain.json new file mode 100644 index 0000000..498a712 --- /dev/null +++ b/public/locales/pt/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "Insira o ID/nome da sua conta blockchain para prosseguir" + }, + "selectAsset": { + "lookup": "Ativos de pesquisa emitidos por um usuário", + "fetching": "Recuperando informações em sua conta Bitshares", + "noResultsHeader": "Nenhum ativo emitido encontrado", + "noResultsDesc": "Esta conta Bitshares não emitiu NFTs no BTS DEX.", + "notice": "Nota: Comprar e possuir um NFT no BTS DEX não concede automaticamente a você direitos de edição de NFT.", + "selection": "Selecione a NFT que deseja editar", + "back": "Volte", + "refresh": "Atualizar", + "nonNFT1": "Os seguintes ativos ainda não são NFTs", + "nonNFT2": "Por que não introduzir a funcionalidade NFT em seus ativos Bitshares existentes?" + }, + "accounts": { + "enterID": "Insira um ID de conta para prosseguir", + "fetchingAccount": "Procurando conta", + "noAccount": "Essa conta não foi encontrada, verifique a entrada e tente novamente.", + "searchResults": "Procurar Resultados", + "loading": "Carregando...", + "invalidID": "ID de conta inválido - Deve começar com '1.2.' ", + "accountID": "ID da conta (por exemplo, 1.2.0)", + "existingID": "Prossiga com um ID de conta existente da conta Beet vinculada?", + "beetReq": "Buscar ID da conta da carteira Beet", + "beetLinked": "Prossiga com sua conta vinculada ao Beet" + }, + "loadAsset": { + "noHeader": "nada para editar", + "noSubHeader": "Você ainda não salvou nenhum rascunho de NFT.", + "draftHeader": "Selecione o rascunho NFT que deseja editar", + "back": "Volte" + }, + "wizard": { + "broadcastCreate": "Para criar este NFT, abra sua carteira Bitshares Beet e digitalize o seguinte código QR", + "broadcastUpdate": "Para atualizar este NFT, abra sua carteira Bitshares Beet e digitalize o seguinte código QR", + "inProgress": "Por favor, espere...", + "back": "Volte", + "form": { + "header": "Pronto para emitir NFTs na blockchain Bitshares!", + "subHeader": "Certifique-se de ter tokens Bitshares suficientes para cobrir as taxas de rede.", + "feeTip": "Para economizar em taxas, considere obter uma assinatura vitalícia do Bitshares.", + "poolTip": "Lembre-se também de retirar o pool de taxas do NFT após a criação.", + "spec": "Especificação BTS NFT", + "imgHeader": "Detalhes da imagem", + "qtyImages": "Este NFT contém atualmente o seguinte {{qty}} imagens:", + "changeImages": "Alterar imagens", + "issuerLabel": "Conta Bitshares usada para emissão de NFT", + "symbolLabel": "símbolo de ativo", + "symbolPlaceholder": "Símbolo de ativo para navegação DEX", + "mainLabel": "Descrição principal", + "mainPlaceholder": "Breve resumo de ativos para DEX", + "snLabel": "Nome curto", + "snPlaceholder": "Nome abreviado para DEX", + "marketLabel": "Mercado", + "marketPlaceholder": "Ativo comercial primário, por exemplo ", + "msLabel": "Fornecimento máximo", + "precisionLabel": "Precisão do ativo (casas decimais)", + "nftHeader": "detalhes NFT", + "titleLabel": "título NFT", + "titlePlaceholder": "título NFT", + "artistLabel": "artista NFT", + "artistPlaceholder": "Identidade do artista, nome de usuário ou pseudônimo", + "narrativeLabel": "narrativa", + "narrativePlaceholder": "Narrativa", + "tagsLabel": "etiquetas NFT", + "tagsPlaceholder": "vírgula,separados,tags", + "typeLabel": "tipo NFT", + "typePlaceholder": "NFT/ARTE/VISUAL", + "attestationLabel": "atestado NFT", + "attestationPlaceholder": "Um atestado referente a esta NFT", + "ackLabel": "Reconhecimentos NFT", + "ackPlaceholder": "Quaisquer agradecimentos que você tenha que fazer", + "holderLicenceLabel": "Licença de titulares de NFT", + "holderLicencePlaceholder": "Licença de titular NFT", + "licenseLabel": "Licença NFT", + "licensePlaceholder": "Licença", + "sigHeader": "texto assinado", + "signedLabel": "Assinatura", + "signedPlaceholder": "assinatura", + "signature": "Assinatura", + "cerHeader": "Taxa de Câmbio Central", + "cerbaLabel": "Valor base", + "cerbaIDLabel": "ID do recurso básico", + "cerqaLabel": "valor da cotação", + "cerqaIDLabel": "cotar id do ativo", + "permsHeader": "Permissões", + "permsSubHeader": "Observação: desabilitar permissões é uma decisão permanente.", + "disabledCMFPerm": "A permissão charge_market_fee foi desativada permanentemente.", + "cmfPLabel": "Ativar taxa de mercado (charge_market_fee)", + "disabledWL": "A permissão white_list foi desativada permanentemente.", + "wlLabel": "Exigir que os titulares sejam incluídos na lista branca (white_list)", + "disabledPOA": "A permissão override_authority foi desativada permanentemente.", + "poaLabel": "O proprietário do recurso pode transferir o recurso de volta para si mesmo (override_authority)", + "disabledTR": "A permissão transfer_restricted foi desativada permanentemente.", + "trLabel": "O proprietário do recurso deve aprovar todas as transferências (transfer_restricted)", + "disabledDC": "A permissão disable_confidential foi desativada permanentemente.", + "dcLabel": "Desabilitar transações confidenciais (disable_confidential)", + "flagsHeader": "Bandeiras", + "flagsSubHeader": "Se uma permissão relacionada acima estiver habilitada, esses sinalizadores podem ser alterados a qualquer momento.", + "disabledLabel": "A permissão relativa foi desativada.", + "fcmfLabel": "Ativar a cobrança de uma taxa de mercado (charge_market_fee)", + "fwlLabel": "Exigir que os titulares sejam incluídos na lista branca (white_list)", + "foaLabel": "O proprietário do recurso pode transferir o recurso de volta para si mesmo (override_authority)", + "ftrLabel": "O proprietário do recurso deve aprovar todas as transferências (transfer_restricted)", + "fdcLabel": "Desabilitar transações confidenciais (disable_confidential)", + "submitHeader": "Preencha os campos do formulário acima.", + "submitBtn": "Enviar", + "waitBeet": "Aguardando as respostas dos prompts do BEET", + "saveDraftLabel": "Salvar seu progresso para este NFT?", + "saveBtn": "Salvar Rascunho", + "modalTitle": "NFT JSON", + "viewJSON": "Ver JSON", + "broadcastSuccess": "com sucesso {{action}} sua NFT no {{network}} blockchain!", + "broadcastActionCreate": "criado", + "broadcastActionUpdate": "Atualizada" + } + }, + "issueNFT": { + "form": { + "invalid": "inválido", + "header": "Para emitir esta NFT, abra a carteira Beet e digitalize o código QR abaixo.", + "back": "Volte", + "progress": "Por favor, espere...", + "success": "Sua NFT foi emitida com sucesso no {{network}} blockchain!", + "readyHeader": "Pronto para emitir NFTs na blockchain Bitshares!", + "subHeader": "Preencha o formulário abaixo para prosseguir com a emissão da NFT.", + "issueHeader": "Formulário de emissão de ativos", + "issuerLabel": "Conta Bitshares usada para emissão de NFT", + "assetID": "ID do ativo NFT", + "quantity": "Quantidade de NFT a emitir", + "target": "Conta de destino para emitir NFT para", + "completeHeader": "Preencha os campos do formulário acima.", + "completeBtn": "Enviar", + "beetWait": "Aguardando as respostas dos prompts do BEET" + } + } + } \ No newline at end of file diff --git a/public/locales/pt/images.json b/public/locales/pt/images.json new file mode 100644 index 0000000..3472aeb --- /dev/null +++ b/public/locales/pt/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "Prossiga com a emissão", + "ipfsBtn": "Adicionar url IPFS", + "header": "Essa ferramenta permite a criação de NFTs que usam IPFS como armazenamento de mídia.", + "typeLabel": "Especifique o tipo de arquivo:", + "typeDesc": "Isso é necessário para que o NFT seja exibido corretamente.", + "ipfsURL": "URL IPFS completo para um arquivo individual:", + "back": "Volte", + "urlHeader": "URL IPFS", + "newHeader": "Ainda não carregou suas imagens NFT para IPFS?", + "serviceList": "Em seguida, verifique os seguintes serviços de fixação IPFS:" + } + } \ No newline at end of file diff --git a/public/locales/pt/setup.json b/public/locales/pt/setup.json new file mode 100644 index 0000000..dae1fbf --- /dev/null +++ b/public/locales/pt/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "Para a conta \"{{account}}\" O que você quer fazer?", + "create": "Criar NFT", + "edit": "Editar NFT", + "issue": "Emitir NFTs", + "draft": "Carregar rascunho", + "back": "Voltar", + "header2": "Forneça um ID/nome de conta:", + "chooseBEET": "Pergunte à BETERRABA", + "chooseSearch": "Procurar conta manualmente", + "beetPrompt": "Para continuar, conecte-se a Beet.", + "linkPrompt": "Para continuar, conecte-se com Beet.", + "waiting": "Aguardando a resposta do usuário do cliente BEET" + }, + "environment": { + "header": "Qual blockchain Bitshares você deseja usar?", + "testnet": "rede de teste", + "production": "rede principal" + }, + "loading": { + "message": "Encontrando a conexão blockchain mais rápida, aguarde.." + }, + "offline": { + "header": "Você parece estar offline? ", + "exit": "Saída" + }, + "settings": { + "remove": "Retirar", + "settings": "Configurações", + "linked": "Aqui estão suas contas atualmente vinculadas", + "notLinked": "Beterraba não ligada.", + "back": "Volte", + "language": "Mudar idioma?" + }, + "app": { + "error": "Foi encontrado um problema, reinicie e tente novamente.", + "reset": "Redefinir aplicativo" + } + } \ No newline at end of file diff --git a/public/locales/th/beet.json b/public/locales/th/beet.json new file mode 100644 index 0000000..2e1af30 --- /dev/null +++ b/public/locales/th/beet.json @@ -0,0 +1,23 @@ +{ + "beetlink": { + "connected": "เชื่อมต่อกับ Beet wallet เรียบร้อยแล้ว", + "linkPrompt": "ดำเนินการต่อโดยเชื่อมโยงแอพนี้กับกระเป๋าเงิน Beet ของคุณด้านล่าง", + "linkButton": "เชื่อมโยงไปยังบีท", + "beetWait": "กำลังรอการตอบกลับจาก BEET พรอมต์", + "backButton": "กลับ" + }, + "connect": { + "remove": "ลบ", + "previousBEET": "คุณต้องการใช้บัญชี BEET ที่เชื่อมโยงไว้ก่อนหน้านี้ใด", + "newBEET": "ต้องการใช้บัญชีอื่นหรือไม่?", + "newBtn": "เชื่อมต่อกับบัญชีใหม่", + "back": "ย้อนกลับ", + "beetHeader": "เครื่องมือนี้ออกแบบมาเพื่อใช้กับ Bitshares BEET Wallet", + "beetSubheading": "เปิดและปลดล็อค จากนั้นคลิกปุ่มเชื่อมต่อด้านล่างเพื่อดำเนินการต่อ", + "beetConnect": "เชื่อมต่อกับบีท", + "btsPrompt": "ยังไม่ได้ติดตั้งกระเป๋าเงิน Bitshares BEET? ", + "btsGuide": "เมื่อติดตั้งแล้ว ให้สร้างกระเป๋าเงินและดำเนินการเชื่อมต่อด้านบน", + "beetDownload": "ดาวน์โหลดบีท", + "connecting": "กำลังเชื่อมต่อกับบีท" + } + } \ No newline at end of file diff --git a/public/locales/th/blockchain.json b/public/locales/th/blockchain.json new file mode 100644 index 0000000..0aa0b48 --- /dev/null +++ b/public/locales/th/blockchain.json @@ -0,0 +1,139 @@ +{ + "accountSearch": { + "inputPrompt": "ป้อน ID/ชื่อบัญชี blockchain ของคุณเพื่อดำเนินการต่อ" + }, + "selectAsset": { + "lookup": "ค้นหาเนื้อหาที่ออกโดยผู้ใช้", + "fetching": "กำลังดึงข้อมูลในบัญชี Bitshares ของคุณ", + "noResultsHeader": "ไม่พบสินทรัพย์ที่ออก", + "noResultsDesc": "บัญชี Bitshares นี้ไม่ได้ออก NFT ใดๆ บน BTS DEX", + "notice": "หมายเหตุ: การซื้อและเป็นเจ้าของ NFT บน BTS DEX ไม่ได้ให้สิทธิ์ในการแก้ไข NFT แก่คุณโดยอัตโนมัติ", + "selection": "เลือก NFT ที่คุณต้องการแก้ไข", + "back": "ย้อนกลับ", + "refresh": "รีเฟรช", + "nonNFT1": "เนื้อหาต่อไปนี้ยังไม่ใช่ NFT", + "nonNFT2": "ทำไมไม่แนะนำฟังก์ชัน NFT ให้กับสินทรัพย์ Bitshares ที่คุณมีอยู่" + }, + "accounts": { + "enterID": "ป้อน ID บัญชีเพื่อดำเนินการต่อ", + "fetchingAccount": "กำลังค้นหาบัญชี", + "noAccount": "ไม่พบบัญชีดังกล่าว ตรวจสอบข้อมูลที่ป้อนแล้วลองอีกครั้ง", + "searchResults": "ผลการค้นหา", + "loading": "กำลังโหลด...", + "invalidID": "ID บัญชีไม่ถูกต้อง - ต้องขึ้นต้นด้วย '1.2' ", + "accountID": "รหัสบัญชี (เช่น 1.2.0)", + "existingID": "ดำเนินการต่อด้วย ID บัญชีที่มีอยู่จากบัญชี Beet ที่เชื่อมโยงหรือไม่", + "beetReq": "ดึง ID บัญชีจาก Beet wallet", + "beetLinked": "ดำเนินการกับบัญชีที่เชื่อมโยงกับ Beet ของคุณ" + }, + "loadAsset": { + "noHeader": "ไม่มีอะไรจะแก้ไข", + "noSubHeader": "คุณยังไม่ได้บันทึกฉบับร่าง NFT", + "draftHeader": "เลือกฉบับร่าง NFT ที่คุณต้องการแก้ไข", + "back": "ย้อนกลับ" + }, + "wizard": { + "broadcastCreate": "หากต้องการสร้าง NFT นี้ ให้เปิดกระเป๋าเงิน Bitshares Beet ของคุณและสแกนรหัส QR ต่อไปนี้", + "broadcastUpdate": "หากต้องการอัปเดต NFT นี้ ให้เปิดกระเป๋าเงิน Bitshares Beet ของคุณและสแกนรหัส QR ต่อไปนี้", + "inProgress": "โปรดรอ...", + "back": "ย้อนกลับ", + "form": { + "header": "พร้อมที่จะออก NFT บน Bitshares blockchain!", + "subHeader": "ตรวจสอบให้แน่ใจว่าคุณมีโทเค็น Bitshares เพียงพอที่จะครอบคลุมค่าธรรมเนียมเครือข่าย", + "feeTip": "หากต้องการประหยัดค่าธรรมเนียม ให้ลองสมัครสมาชิก Bitshares ตลอดชีพ", + "poolTip": "อย่าลืมถอนค่าธรรมเนียมรวมของ NFT หลังจากสร้าง", + "spec": "สเป็ค BTS NFT", + "imgHeader": "รายละเอียดภาพ", + "qtyImages": "ขณะนี้ NFT นี้มีดังต่อไปนี้ {{qty}} ภาพ:", + "changeImages": "เปลี่ยนภาพ", + "issuerLabel": "บัญชี Bitshares ที่ใช้สำหรับการออก NFT", + "symbolLabel": "สัญลักษณ์สินทรัพย์", + "symbolPlaceholder": "สัญลักษณ์สินทรัพย์สำหรับการนำทาง DEX", + "mainLabel": "คำอธิบายหลัก", + "mainPlaceholder": "สรุปสินทรัพย์โดยย่อสำหรับ DEX", + "snLabel": "ชื่อสั้น", + "snPlaceholder": "ชื่อย่อสำหรับ DEX", + "marketLabel": "ตลาด", + "marketPlaceholder": "สินทรัพย์ซื้อขายหลักเช่น ", + "msLabel": "อุปทานสูงสุด", + "precisionLabel": "ความแม่นยำของสินทรัพย์ (ตำแหน่งทศนิยม)", + "nftHeader": "รายละเอียด NFT", + "titleLabel": "ชื่อเรื่อง NFT", + "titlePlaceholder": "ชื่อเรื่อง NFT", + "artistLabel": "ศิลปิน NFT", + "artistPlaceholder": "ตัวตนของศิลปิน ชื่อผู้ใช้ หรือนามแฝง", + "narrativeLabel": "เรื่องเล่า", + "narrativePlaceholder": "เรื่องเล่า", + "tagsLabel": "แท็ก NFT", + "tagsPlaceholder": "เครื่องหมายจุลภาคคั่นแท็ก", + "typeLabel": "ประเภทเอ็นเอฟที", + "typePlaceholder": "NFT/ศิลปะ/ภาพ", + "attestationLabel": "การรับรอง NFT", + "attestationPlaceholder": "การรับรองเกี่ยวกับ NFT นี้", + "ackLabel": "กิตติกรรมประกาศ NFT", + "ackPlaceholder": "การรับรู้ใด ๆ ที่คุณต้องทำ", + "holderLicenceLabel": "ใบอนุญาตผู้ถือ NFT", + "holderLicencePlaceholder": "ใบอนุญาตผู้ถือ NFT", + "licenseLabel": "ใบอนุญาต NFT", + "licensePlaceholder": "ใบอนุญาต", + "sigHeader": "ข้อความที่ลงนาม", + "signedLabel": "ลายเซ็น", + "signedPlaceholder": "ลายเซ็น", + "signature": "ลายเซ็น", + "cerHeader": "อัตราแลกเปลี่ยนหลัก", + "cerbaLabel": "จำนวนฐาน", + "cerbaIDLabel": "รหัสเนื้อหาฐาน", + "cerqaLabel": "จำนวนใบเสนอราคา", + "cerqaIDLabel": "รหัสสินทรัพย์อ้างอิง", + "permsHeader": "สิทธิ์", + "permsSubHeader": "หมายเหตุ: สิทธิ์การปิดใช้งานถือเป็นการตัดสินใจถาวร", + "disabledCMFPerm": "สิทธิ์ charge_market_fee ถูกปิดใช้งานอย่างถาวร", + "cmfPLabel": "เปิดใช้งานค่าธรรมเนียมการตลาด (charge_market_fee)", + "disabledWL": "สิทธิ์ white_list ถูกปิดใช้งานอย่างถาวร", + "wlLabel": "กำหนดให้ผู้ถืออยู่ในบัญชีขาว (white_list)", + "disabledPOA": "สิทธิ์ override_authority ถูกปิดใช้งานอย่างถาวร", + "poaLabel": "เจ้าของทรัพย์สินอาจโอนทรัพย์สินคืนให้ตนเองได้ (override_authority)", + "disabledTR": "สิทธิ์ของ Transfer_restricted ถูกปิดใช้งานอย่างถาวร", + "trLabel": "เจ้าของเนื้อหาต้องอนุมัติการโอนทั้งหมด (transfer_restricted)", + "disabledDC": "สิทธิ์การปิดใช้งาน_เป็นความลับถูกปิดใช้งานอย่างถาวร", + "dcLabel": "ปิดการทำธุรกรรมที่เป็นความลับ (disable_confidential)", + "flagsHeader": "ธง", + "flagsSubHeader": "หากเปิดใช้งานการอนุญาตที่เกี่ยวข้องข้างต้น การตั้งค่าสถานะเหล่านี้สามารถเปลี่ยนแปลงได้ตลอดเวลา", + "disabledLabel": "สิทธิ์ที่เกี่ยวข้องถูกปิดใช้งาน", + "fcmfLabel": "เปิดใช้งานการเรียกเก็บค่าธรรมเนียมตลาด (charge_market_fee)", + "fwlLabel": "กำหนดให้ผู้ถืออยู่ในบัญชีขาว (white_list)", + "foaLabel": "เจ้าของทรัพย์สินอาจโอนทรัพย์สินคืนให้ตนเองได้ (override_authority)", + "ftrLabel": "เจ้าของเนื้อหาต้องอนุมัติการโอนทั้งหมด (transfer_restricted)", + "fdcLabel": "ปิดการทำธุรกรรมที่เป็นความลับ (disable_confidential)", + "submitHeader": "กรอกฟิลด์ในแบบฟอร์มด้านบน", + "submitBtn": "ส่ง", + "waitBeet": "กำลังรอการตอบกลับจาก BEET", + "saveDraftLabel": "บันทึกความคืบหน้าของคุณสำหรับ NFT นี้หรือไม่", + "saveBtn": "บันทึกร่าง", + "modalTitle": "เอ็นเอฟที JSON", + "viewJSON": "ดู JSON", + "broadcastSuccess": "เรียบร้อยแล้ว {{action}} NFT ของคุณบน {{network}} บล็อกเชน!", + "broadcastActionCreate": "สร้าง", + "broadcastActionUpdate": "ปรับปรุง" + } + }, + "issueNFT": { + "form": { + "invalid": "ไม่ถูกต้อง", + "header": "หากต้องการออก NFT นี้ ให้เปิดกระเป๋าเงิน Beet และสแกนรหัส QR ด้านล่าง", + "back": "ย้อนกลับ", + "progress": "โปรดรอ...", + "success": "ออก NFT ของคุณสำเร็จเมื่อวันที่ {{network}} บล็อกเชน!", + "readyHeader": "พร้อมที่จะออก NFT บน Bitshares blockchain!", + "subHeader": "กรอกแบบฟอร์มด้านล่างเพื่อดำเนินการออก NFT", + "issueHeader": "แบบฟอร์มการออกสินทรัพย์", + "issuerLabel": "บัญชี Bitshares ที่ใช้สำหรับการออก NFT", + "assetID": "รหัสสินทรัพย์ NFT", + "quantity": "จำนวน NFT ที่จะออก", + "target": "บัญชีเป้าหมายที่จะออก NFT ให้", + "completeHeader": "กรอกฟิลด์ในแบบฟอร์มด้านบน", + "completeBtn": "ส่ง", + "beetWait": "กำลังรอการตอบกลับจาก BEET" + } + } + } \ No newline at end of file diff --git a/public/locales/th/images.json b/public/locales/th/images.json new file mode 100644 index 0000000..76ca8e4 --- /dev/null +++ b/public/locales/th/images.json @@ -0,0 +1,14 @@ +{ + "offchain": { + "continueBtn": "ดำเนินการออก", + "ipfsBtn": "เพิ่ม URL IPFS", + "header": "เครื่องมือนี้ช่วยให้สามารถสร้าง NFT ซึ่งใช้ IPFS เป็นที่จัดเก็บสื่อ", + "typeLabel": "ระบุประเภทไฟล์:", + "typeDesc": "สิ่งนี้จำเป็นสำหรับ NFT เพื่อแสดงอย่างถูกต้อง", + "ipfsURL": "URL IPFS แบบเต็มสำหรับแต่ละไฟล์:", + "back": "ย้อนกลับ", + "urlHeader": "IPFS URL", + "newHeader": "ยังไม่ได้อัปโหลดภาพ NFT ของคุณไปยัง IPFS?", + "serviceList": "จากนั้นตรวจสอบบริการปักหมุด IPFS ต่อไปนี้:" + } + } \ No newline at end of file diff --git a/public/locales/th/setup.json b/public/locales/th/setup.json new file mode 100644 index 0000000..3197f54 --- /dev/null +++ b/public/locales/th/setup.json @@ -0,0 +1,40 @@ +{ + "accountMode": { + "header": "สำหรับบัญชี \"{{account}}\" เธออยากทำอะไรล่ะ?", + "create": "สร้างเอ็นเอฟที", + "edit": "แก้ไข NFT", + "issue": "ออก NFT", + "draft": "โหลดแบบร่าง", + "back": "กลับ", + "header2": "กรุณาระบุรหัสบัญชี/ชื่อ:", + "chooseBEET": "ถามบีท", + "chooseSearch": "ค้นหาบัญชีด้วยตนเอง", + "beetPrompt": "หากต้องการดำเนินการต่อ โปรดเชื่อมต่อกับ Beet", + "linkPrompt": "หากต้องการดำเนินการต่อโปรดเชื่อมโยงกับ Beet", + "waiting": "กำลังรอการตอบสนองของผู้ใช้จากไคลเอนต์ BEET" + }, + "environment": { + "header": "คุณต้องการใช้บล็อกเชน Bitshares ใด", + "testnet": "ทดสอบเครือข่าย", + "production": "เครือข่ายหลัก" + }, + "loading": { + "message": "กำลังค้นหาการเชื่อมต่อบล็อกเชนที่เร็วที่สุด โปรดรอสักครู่.." + }, + "offline": { + "header": "คุณดูเหมือนจะออฟไลน์? ", + "exit": "ทางออก" + }, + "settings": { + "remove": "ลบ", + "settings": "การตั้งค่า", + "linked": "นี่คือบัญชีที่เชื่อมโยงของคุณในปัจจุบัน", + "notLinked": "บีทไม่เชื่อมโยง", + "back": "ย้อนกลับ", + "language": "เปลี่ยนภาษา?" + }, + "app": { + "error": "พบปัญหา รีเซ็ตแล้วลองอีกครั้ง", + "reset": "รีเซ็ตแอป" + } + } \ No newline at end of file diff --git a/public/preload.js b/public/preload.js index 7892b9b..30337ad 100644 --- a/public/preload.js +++ b/public/preload.js @@ -85,4 +85,24 @@ window.electron = { timeout ?? 3000, ), openURL: async (target) => _openURL(target), + fetchLocales: () => { + const translations = {}; + const languages = ['en', 'da', 'de', 'et', 'es', 'fr', 'it', 'ja', 'ko', 'pt', 'th']; + const pages = [ + 'beet', + 'blockchain', + 'images', + 'setup', + ]; + languages.forEach((language) => { + const localPages = {}; + pages.forEach((page) => { + // eslint-disable-next-line import/no-dynamic-require, global-require + const pageContents = require(`./locales/${language}/${page}.json`); + localPages[page] = pageContents; + }); + translations[language] = localPages; + }); + return translations; + }, }; diff --git a/src/App.jsx b/src/App.jsx index a7f2296..7aabfcf 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -11,6 +11,8 @@ import { Divider, Image, } from '@mantine/core'; +import { useTranslation } from 'react-i18next'; + import { appStore, beetStore, identitiesStore } from './lib/states'; import Environment from './components/setup/Environment'; @@ -32,6 +34,8 @@ function openURL() { } function App() { + const { t, i18n } = useTranslation(); + const environment = appStore((state) => state.environment); const setEnvironment = appStore((state) => state.setEnvironment); @@ -138,7 +142,7 @@ function App() { const userID = account ?? identity.requested.account.id; initPrompt = ; } else { - initPrompt = An issue was encountered, reset and try again.; + initPrompt = {t('setup:app.error')}; } let caption; @@ -186,7 +190,7 @@ function App() { openSettings(); }} > - Settings + {t('setup:settings.settings')} ) : null} {isLinked ? ( @@ -198,7 +202,7 @@ function App() { reset(); }} > - Reset app + {t('setup:app.reset')} ) : null} diff --git a/src/components/beet/BeetLink.jsx b/src/components/beet/BeetLink.jsx index 6bbd843..b4cafd4 100644 --- a/src/components/beet/BeetLink.jsx +++ b/src/components/beet/BeetLink.jsx @@ -2,9 +2,12 @@ import React, { useEffect, useState } from 'react'; import { Button, Group, Box, Text, Divider, Loader, Col, Paper, } from '@mantine/core'; +import { useTranslation } from 'react-i18next'; + import { appStore, beetStore } from '../../lib/states'; export default function BeetLink(properties) { + const { t, i18n } = useTranslation(); const environment = appStore((state) => state.environment); const setMode = appStore((state) => state.setMode); @@ -37,21 +40,27 @@ export default function BeetLink(properties) { const linkContents = inProgress === false ? ( - Connected to Beet wallet successfully. - Proceed with linking this app to your Beet wallet below. + + {t('beet:beetlink.connected')} + + + {t('beet:beetlink.linkPrompt')} + ) : ( - Waiting on response from BEET prompt + + {t('beet:beetlink.beetWait')} + ); @@ -66,7 +75,7 @@ export default function BeetLink(properties) { back(); }} > - Back + {t('beet:beetlink.backButton')} diff --git a/src/components/beet/Connect.jsx b/src/components/beet/Connect.jsx index ed4bc58..c1bcab5 100644 --- a/src/components/beet/Connect.jsx +++ b/src/components/beet/Connect.jsx @@ -9,9 +9,11 @@ import { Col, Paper, } from '@mantine/core'; +import { useTranslation } from 'react-i18next'; import { appStore, beetStore, identitiesStore } from '../../lib/states'; export default function Connect(properties) { + const { t, i18n } = useTranslation(); const connect = beetStore((state) => state.connect); const setIdentity = beetStore((state) => state.setIdentity); @@ -76,6 +78,7 @@ export default function Connect(properties) { } setIdentity(identity); + // setIsLinked(true); setIdentities(identity); setInProgress(false); } @@ -141,8 +144,9 @@ export default function Connect(properties) { - Which previously linked BEET account do you want to use? - + + {t('beet:connect.previousBEET')} + 1 && rows.length < 3 ? rows.length * 55 : 120 }} > @@ -155,7 +159,9 @@ export default function Connect(properties) {
- Want to use a different account? + + {t('beet:connect.newBEET')} +
@@ -184,9 +190,11 @@ export default function Connect(properties) { - This tool is designed for use with the Bitshares BEET Wallet. - Launch and unlock it, then click the connect button below to proceed. + {t('beet:connect.beetHeader')} + + + {t('beet:connect.beetSubheading')} @@ -210,16 +218,18 @@ export default function Connect(properties) { - Don't yet have the Bitshares BEET wallet installed? Follow the link below. + {t('beet:connect.btsPrompt')} + + + {t('beet:connect.btsGuide')} - Once installed, create a wallet and proceed to connect above. @@ -230,7 +240,9 @@ export default function Connect(properties) { - Connecting to BEET + + {t('beet:connect.connecting')} + ); diff --git a/src/components/blockchain/AccountSearch.jsx b/src/components/blockchain/AccountSearch.jsx index ac27bbb..c4eff19 100644 --- a/src/components/blockchain/AccountSearch.jsx +++ b/src/components/blockchain/AccountSearch.jsx @@ -13,10 +13,13 @@ import { SimpleGrid, } from '@mantine/core'; import { IconSearch, IconArrowRight, IconAlertCircle } from '@tabler/icons'; -import { appStore, beetStore, identitiesStore } from '../../lib/states'; +import { useTranslation } from 'react-i18next'; + +import { appStore } from '../../lib/states'; import { accountSearch } from '../../lib/directQueries'; export default function AccountSearch(properties) { + const { t, i18n } = useTranslation(); const theme = useMantineTheme(); const setAccount = appStore((state) => state.setAccount); @@ -69,26 +72,34 @@ export default function AccountSearch(properties) { if (!searchInput || !attempted) { topText = ( - Enter your blockchain account ID/name to proceed + + {t('blockchain:accountSearch.inputPrompt')} + ); } else if (inProgress) { topText = ( - Looking up account + + {t('blockchain:accounts.fetchingAccount')} + ); } else if (!inProgress && !result && attempted) { topText = ( - No such account could be found, check input and try again. + + {t('blockchain:accounts.noAccount')} + ); } else if (attempted && result) { topText = ( - Search results + + {t('blockchain:accounts.searchResults')} + ); } @@ -97,7 +108,9 @@ export default function AccountSearch(properties) { return ( - Loading... + + {t('blockchain:accounts.loading')} + ); } @@ -112,6 +125,11 @@ export default function AccountSearch(properties) { icon={} radius="xl" size="md" + onKeyUp={(e) => { + if (e.key === 'Enter') { + performSearch(); + } + }} onChange={(e) => { setSearchInput(e.target.value); setAttempted(); @@ -129,7 +147,7 @@ export default function AccountSearch(properties) { )} - placeholder="Account ID (e.g. 1.2.0)" + placeholder={t('blockchain:accounts.accountID')} rightSectionWidth={42} /> ) : null} diff --git a/src/components/blockchain/IssueNFT.jsx b/src/components/blockchain/IssueNFT.jsx index 28691c0..4221654 100644 --- a/src/components/blockchain/IssueNFT.jsx +++ b/src/components/blockchain/IssueNFT.jsx @@ -4,13 +4,15 @@ import { } from '@mantine/core'; import { useForm } from '@mantine/form'; import { QRCode } from 'react-qrcode-logo'; +import { useTranslation } from 'react-i18next'; import { appStore, beetStore } from '../../lib/states'; import { generateObject, broadcastOperation } from '../../lib/broadcasts'; export default function SelectAsset(properties) { + const { t, i18n } = useTranslation(); const back = appStore((state) => state.back); - + const asset = appStore((state) => state.asset); const wsURL = appStore((state) => state.nodes[0]); const accountType = appStore((state) => state.accountType); @@ -32,8 +34,8 @@ export default function SelectAsset(properties) { amount: values.asset_to_issue_amount, asset_id: values.asset_to_issue_asset_id, }, - //memo: undefined, - //memo: values.memo, + // memo: undefined, + // memo: values.memo, issue_to_account: values.issue_to_account, extensions: [], }; @@ -90,9 +92,9 @@ export default function SelectAsset(properties) { const form = useForm({ initialValues, validate: { - asset_to_issue_amount: (value) => (value > 0 ? null : 'Invalid'), - asset_to_issue_asset_id: (value) => (value.length > 0 ? null : 'Invalid'), - issue_to_account: (value) => (value.length > 0 && value.includes("1.2.") ? null : 'Invalid'), + asset_to_issue_amount: (value) => (value > 0 ? null : t('blockchain:issueNFT.form.invalid')), + asset_to_issue_asset_id: (value) => (value.length > 0 ? null : t('blockchain:issueNFT.form.invalid')), + issue_to_account: (value) => (value.length > 0 && value.includes("1.2.") ? null : t('blockchain:issueNFT.form.invalid')), }, validateInputOnChange: true, }); @@ -102,7 +104,7 @@ export default function SelectAsset(properties) { response = ( - To issue this NFT, open the Beet wallet and scan the below QR code. + {t('blockchain:issueNFT.form.header')} - Back + {t('blockchain:issueNFT.form.back')} ); } else if (inProgress) { response = ( - Please wait... + + {t('blockchain:issueNFT.form.progress')} + ); @@ -134,18 +138,17 @@ export default function SelectAsset(properties) { - Successfully issued your NFT on the - {' '} - {environment === 'production' ? 'Bitshares' : 'Bitshares (Testnet)'} - {' '} - blockchain! + {t( + 'blockchain:issueNFT.form.success', + { network: environment === 'production' ? 'Bitshares' : 'Bitshares (Testnet)' }, + )} @@ -157,43 +160,49 @@ export default function SelectAsset(properties) { - Ready to issue NFTs on the Bitshares blockchain! - Complete the below form to proceed with NFT issuance. + + {t('blockchain:issueNFT.form.readyHeader')} + + + {t('blockchain:issueNFT.form.subHeader')} + - Asset issuance form + + {t('blockchain:issueNFT.form.issueHeader')} + @@ -204,20 +213,24 @@ export default function SelectAsset(properties) { {!inProgress ? ( - Complete the fields in the above form. + {t('blockchain:issueNFT.form.completeHeader')}
processForm(values)) } > - +
) : ( - Waiting on responses from BEET prompts + + {t('blockchain:issueNFT.form.beetWait')} + )}
diff --git a/src/components/blockchain/LoadAsset.jsx b/src/components/blockchain/LoadAsset.jsx index 5318417..a083463 100644 --- a/src/components/blockchain/LoadAsset.jsx +++ b/src/components/blockchain/LoadAsset.jsx @@ -2,9 +2,11 @@ import React, { useEffect, useState } from 'react'; import { Button, Group, Box, Text, Divider, SimpleGrid, Loader, Col, Paper, } from '@mantine/core'; +import { useTranslation } from 'react-i18next'; import { appStore, identitiesStore } from '../../lib/states'; export default function LoadAsset(properties) { + const { t, i18n } = useTranslation(); const setMode = appStore((state) => state.setMode); const drafts = identitiesStore((state) => state.drafts); const setInitialValues = appStore((state) => state.setInitialValues); @@ -19,16 +21,20 @@ export default function LoadAsset(properties) { if (!drafts || !drafts.length) { topText = ( - Nothing to edit + + {t('blockchain:loadAsset.noHeader')} + - You have not saved any NFT drafts yet. + {t('blockchain:loadAsset.noSubHeader')} ); } else { topText = ( - Select the NFT draft you wish to edit + + {t('blockchain:loadAsset.draftHeader')} + ); } @@ -41,7 +47,7 @@ export default function LoadAsset(properties) { sx={{ margin: '2px' }} variant="outline" onClick={() => { - setMode('create') + setMode('create'); setInitialValues(initialValues.values); setAssetImages(initialValues.asset_images); }} @@ -76,7 +82,7 @@ export default function LoadAsset(properties) { goBack(); }} > - Back + {t('blockchain:loadAsset.back')}
diff --git a/src/components/blockchain/SelectAsset.jsx b/src/components/blockchain/SelectAsset.jsx index 418a101..cd64711 100644 --- a/src/components/blockchain/SelectAsset.jsx +++ b/src/components/blockchain/SelectAsset.jsx @@ -2,9 +2,11 @@ import React, { useEffect, useState } from 'react'; import { Button, Group, Box, Text, Divider, SimpleGrid, Loader, Col, Paper, } from '@mantine/core'; +import { useTranslation } from 'react-i18next'; import { appStore } from '../../lib/states'; export default function SelectAsset(properties) { + const { t, i18n } = useTranslation(); const setAsset = appStore((state) => state.setAsset); const setMode = appStore((state) => state.setMode); const changeURL = appStore((state) => state.changeURL); @@ -54,29 +56,31 @@ export default function SelectAsset(properties) { topText = ( - Retrieving info on your Bitshares account + + {t('blockchain:selectAsset.fetching')} + ); } else if (assets && !assets.length) { topText = ( - No NFTs to edit - - This Bitshares account hasn't issued any NFTs on the BTS DEX. + + {t('blockchain:selectAsset.noResultsHeader')} - - You can either create a new NFT or switch Bitshares account. + + {t('blockchain:selectAsset.noResultsDesc')} - - Note: Buying an NFT on the BTS DEX doesn't automatically grant you NFT editing - rights. + + {t('blockchain:selectAsset.notice')} ); } else { topText = ( - Select the NFT you wish to edit + + {t('blockchain:selectAsset.selection')} + ); } @@ -130,9 +134,9 @@ export default function SelectAsset(properties) { nonNFTs && nonNFTs.length ? ( - The following assets are not yet NFTs + {t('blockchain:selectAsset.nonNFT1')} - Why not introduce NFT functionality to your existing Bitshares assets? + {t('blockchain:selectAsset.nonNFT2')} ) : null @@ -147,7 +151,7 @@ export default function SelectAsset(properties) { increaseTries(); }} > - Refresh + {t('blockchain:selectAsset.refresh')} diff --git a/src/components/blockchain/Wizard.jsx b/src/components/blockchain/Wizard.jsx index 88e7904..3aaa7d6 100644 --- a/src/components/blockchain/Wizard.jsx +++ b/src/components/blockchain/Wizard.jsx @@ -16,6 +16,7 @@ import { } from '@mantine/core'; import { useForm } from '@mantine/form'; import { QRCode } from 'react-qrcode-logo'; +import { useTranslation } from 'react-i18next'; import { appStore, beetStore, identitiesStore } from '../../lib/states'; import { getPermissions, getFlags, getFlagBooleans } from '../../lib/permissions'; @@ -26,6 +27,7 @@ function openLink() { } export default function Wizard(properties) { + const { t, i18n } = useTranslation(); const { userID } = properties; const [broadcastResult, setBroadcastResult] = useState(); @@ -383,20 +385,20 @@ export default function Wizard(properties) { const form = useForm({ initialValues, validate: { - artist: (value) => (value.length > 0 ? null : 'Invalid'), - attestation: (value) => (value.length > 0 ? null : 'Invalid'), - title: (value) => (value.length > 0 ? null : 'Invalid'), - main: (value) => (value.length > 0 ? null : 'Invalid'), - market: (value) => (value.length > 0 ? null : 'Invalid'), - short_name: (value) => (value.length > 0 ? null : 'Invalid'), - symbol: (value) => (value.length > 0 ? null : 'Invalid'), - max_supply: (value) => (value >= 0 ? null : 'Invalid'), - precision: (value) => (value >= 0 ? null : 'Invalid'), - flag_charge_market_fee: (value, values) => (value === true && !values.perm_charge_market_fee ? 'Invalid' : null), - flag_white_list: (value, values) => (value === true && !values.perm_white_list ? 'Invalid' : null), - flag_override_authority: (value, values) => (value === true && !values.perm_override_authority ? 'Invalid' : null), - flag_transfer_restricted: (value, values) => (value === true && !values.perm_transfer_restricted ? 'Invalid' : null), - flag_disable_confidential: (value, values) => (value === true && !values.perm_disable_confidential ? 'Invalid' : null), + artist: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + attestation: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + title: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + main: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + market: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + short_name: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + symbol: (value) => (value.length > 0 ? null : t('blockchain:wizard.invalid')), + max_supply: (value) => (value >= 0 ? null : t('blockchain:wizard.invalid')), + precision: (value) => (value >= 0 ? null : t('blockchain:wizard.invalid')), + flag_charge_market_fee: (value, values) => (value === true && !values.perm_charge_market_fee ? t('blockchain:wizard.invalid') : null), + flag_white_list: (value, values) => (value === true && !values.perm_white_list ? t('blockchain:wizard.invalid') : null), + flag_override_authority: (value, values) => (value === true && !values.perm_override_authority ? t('blockchain:wizard.invalid') : null), + flag_transfer_restricted: (value, values) => (value === true && !values.perm_transfer_restricted ? t('blockchain:wizard.invalid') : null), + flag_disable_confidential: (value, values) => (value === true && !values.perm_disable_confidential ? t('blockchain:wizard.invalid') : null), }, validateInputOnChange: true, }); @@ -406,11 +408,11 @@ export default function Wizard(properties) { response = ( - To - {' '} - {mode} - {' '} - this NFT, open your Bitshares wallet and scan the below QR code. + { + mode === 'create' + ? t('blockchain:wizard.broadcastCreate') + : t('blockchain:wizard.broadcastUpdate') + } - Back + {t('blockchain:wizard.back')} ); } else if (inProgress) { response = ( - Please wait... + + {t('blockchain:wizard.inProgress')} + ); @@ -442,38 +446,42 @@ export default function Wizard(properties) { - Ready to issue NFTs on the Bitshares blockchain! + + {t('blockchain:wizard.form.header')} + + + {t('blockchain:wizard.form.subHeader')} + - Make sure you have enough Bitshares tokens to cover the network fees. + {t('blockchain:wizard.form.feeTip')} + + + {t('blockchain:wizard.form.poolTip')} - To save on fees consider getting a Bitshares lifetime membership. - Also remember to withdraw the NFT's fee pool after creation. - Image details + + {t('blockchain:wizard.form.imgHeader')} + - This NFT currently contains the following - {' '} - {asset_images && asset_images.length} - {' '} - images: + {t('blockchain:wizard.form.qtyImages', { qty: asset_images && asset_images.length })} {asset_images ? asset_images.map((item) => ( @@ -489,7 +497,7 @@ export default function Wizard(properties) { changeImages(); }} > - Change images + {t('blockchain:wizard.form.changeImages')} @@ -499,43 +507,43 @@ export default function Wizard(properties) { @@ -543,73 +551,75 @@ export default function Wizard(properties) { - NFT details + + {t('blockchain:wizard.form.nftHeader')} + - NFT Signatures + {t('blockchain:wizard.form.sigHeader')} {accountType !== 'BEET' ? ( ) : null} {accountType !== 'BEET' ? ( ) : null} @@ -617,138 +627,144 @@ export default function Wizard(properties) { - Core Exchange Rate + + {t('blockchain:wizard.form.cerHeader')} + - Permissions - Note: Disabling permissions is a permanent decision. + + {t('blockchain:wizard.form.permsHeader')} + + + {t('blockchain:wizard.form.permsSubHeader')} + {!permissionBooleans.charge_market_fee ? ( ) : ( )}
{!permissionBooleans.white_list ? ( ) : ( )}
{!permissionBooleans.override_authority ? ( ) : ( )}
{!permissionBooleans.transfer_restricted ? ( ) : ( )}
{!permissionBooleans.disable_confidential ? ( ) : ( )} @@ -756,43 +772,45 @@ export default function Wizard(properties) { - Flags + + {t('blockchain:wizard.form.flagsHeader')} + - If a related permission above is enabled, these flags can be changed at any time. + {t('blockchain:wizard.form.flagsSubHeader')} { !permissionBooleans.charge_market_fee ? ( // || form.values.perm_charge_market_fee === false - + ) : ( ) }
{!permissionBooleans.white_list ? ( // || form.values.perm_white_list === false - + ) : ( )} @@ -800,18 +818,18 @@ export default function Wizard(properties) { { !permissionBooleans.override_authority ? ( // || form.values.perm_override_authority === false - + ) : ( ) @@ -820,18 +838,18 @@ export default function Wizard(properties) { { !permissionBooleans.transfer_restricted ? ( // || form.values.perm_transfer_restricted === false - + ) : ( ) @@ -840,18 +858,18 @@ export default function Wizard(properties) { { !permissionBooleans.disable_confidential ? ( // || form.values.perm_disable_confidential === false - + ) : ( ) @@ -863,20 +881,24 @@ export default function Wizard(properties) { {!inProgress ? ( - Complete the fields in the above form. + {t('blockchain:wizard.form.submitHeader')}
processForm(values)) } > - +
) : ( - Waiting on responses from BEET prompts + + {t('blockchain:wizard.form.waitBeet')} + )}
@@ -885,7 +907,7 @@ export default function Wizard(properties) { - Save your progress for this NFT? + {t('blockchain:wizard.form.saveDraftLabel')}
{ form.values.symbol - ? - : + ? + : }
setModalOpened(false)} - title="NFT JSON" + title={t('blockchain:wizard.form.modalTitle')} > @@ -931,7 +953,7 @@ export default function Wizard(properties) { compact type="submit" > - View JSON + {t('blockchain:wizard.form.viewJSON')} ) : ( @@ -941,7 +963,7 @@ export default function Wizard(properties) { disabled type="submit" > - View JSON + {t('blockchain:wizard.form.viewJSON')} ) } @@ -956,22 +978,24 @@ export default function Wizard(properties) { - Successfully - {' '} - {mode === 'create' ? 'created' : 'updated'} - {' '} - your NFT on the - {' '} - {environment === 'production' ? 'Bitshares' : 'BTS Testnet'} - {' '} - blockchain! + { + t( + 'blockchain:wizard.form.broadcastSuccess', + { + action: mode === 'create' + ? t('blockchain:wizard.form.broadcastActionCreate') + : t('blockchain:wizard.form.broadcastActionUpdate'), + network: environment === 'production' ? 'Bitshares' : 'BTS Testnet', + }, + ) + } diff --git a/src/components/images/Offchain.jsx b/src/components/images/Offchain.jsx index dbf1d86..54729be 100644 --- a/src/components/images/Offchain.jsx +++ b/src/components/images/Offchain.jsx @@ -2,6 +2,7 @@ import React, { useState } from 'react'; import { Textarea, Button, Group, Box, Text, Divider, Col, Paper, Radio, } from '@mantine/core'; +import { useTranslation } from 'react-i18next'; import { appStore, beetStore, identitiesStore } from '../../lib/states'; @@ -10,6 +11,7 @@ function openURL(target) { } export default function Offchain(properties) { + const { t, i18n } = useTranslation(); const setMode = appStore((state) => state.setMode); const asset_images = appStore((state) => state.asset_images); const setAssetImages = appStore((state) => state.setAssetImages); @@ -72,11 +74,11 @@ export default function Offchain(properties) { proceed(); }} > - Proceed with issuance + {t('images:offchain.continueBtn')} ) : ( ); @@ -86,10 +88,10 @@ export default function Offchain(properties) { addListItem(); }} > - Add IPFS url + {t('images:offchain.ipfsBtn')} ) : ( - + ); return ( @@ -98,14 +100,14 @@ export default function Offchain(properties) { - This tool enables creation of NFTs which use IPFS as their media storage. + {t('images:offchain.header')} @@ -116,7 +118,7 @@ export default function Offchain(properties) { fileType ? (