From da5f4a792c7da411b3605b6b537a66ca443df913 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 18 Oct 2018 23:47:17 -0230 Subject: Bundle some ui dependencies separately to limit the build size of ui.js --- app/home.html | 1 + app/notification.html | 1 + app/popup.html | 1 + 3 files changed, 3 insertions(+) (limited to 'app') diff --git a/app/home.html b/app/home.html index 4fad0f993..051133cf8 100644 --- a/app/home.html +++ b/app/home.html @@ -7,6 +7,7 @@
+ diff --git a/app/notification.html b/app/notification.html index 457ba7137..042ffa6b8 100644 --- a/app/notification.html +++ b/app/notification.html @@ -11,6 +11,7 @@
+ diff --git a/app/popup.html b/app/popup.html index 3acfd8c55..1ba0fda94 100644 --- a/app/popup.html +++ b/app/popup.html @@ -7,6 +7,7 @@
+ -- cgit From 1ce3591c8ea844eab2dbd9b585e7f5dd3cf18ce8 Mon Sep 17 00:00:00 2001 From: bitpshr Date: Wed, 7 Nov 2018 11:11:08 -0500 Subject: wip --- app/scripts/contentscript.js | 10 ++++----- app/scripts/inpage.js | 53 ++++++++++++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 24 deletions(-) (limited to 'app') diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index 1a10cdb34..efb14233d 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -151,20 +151,20 @@ function listenForProviderRequest () { switch (action) { case 'approve-provider-request': isEnabled = true - injectScript(`window.dispatchEvent(new CustomEvent('ethereumprovider', { detail: {}}))`) + window.postMessage({ type: 'ethereumprovider' }, '*') break case 'reject-provider-request': - injectScript(`window.dispatchEvent(new CustomEvent('ethereumprovider', { detail: { error: 'User rejected provider access' }}))`) + window.postMessage({ type: 'ethereumprovider', error: 'User rejected provider access' }, '*') break case 'answer-is-approved': - injectScript(`window.dispatchEvent(new CustomEvent('ethereumisapproved', { detail: { isApproved: ${isApproved}, caching: ${caching}}}))`) + window.postMessage({ type: 'ethereumisapproved', isApproved, caching }, '*') break case 'answer-is-unlocked': - injectScript(`window.dispatchEvent(new CustomEvent('metamaskisunlocked', { detail: { isUnlocked: ${isUnlocked}}}))`) + window.postMessage({ type: 'metamaskisunlocked', isUnlocked }, '*') break case 'metamask-set-locked': isEnabled = false - injectScript(`window.dispatchEvent(new CustomEvent('metamasksetlocked', { detail: {}}))`) + window.postMessage({ type: 'metamasksetlocked' }, '*') break } }) diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index 327e25042..8ba3ea4a9 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -22,6 +22,14 @@ console.warn('ATTENTION: In an effort to improve user privacy, MetaMask ' + 'accounts. Please see https://bit.ly/2QQHXvF for complete information and up-to-date ' + 'example code.') +function once(messageType, handler) { + window.addEventListener('message', function ({ data: { type } }) { + if (type !== messageType) { return } + window.removeEventListener('message', handler) + handler.apply(window, arguments) + }) +} + // // setup plugin communication // @@ -39,18 +47,21 @@ var inpageProvider = new MetamaskInpageProvider(metamaskStream) inpageProvider.setMaxListeners(100) // set up a listener for when MetaMask is locked -window.addEventListener('metamasksetlocked', () => { +window.addEventListener('message', ({ data: { type } }) => { + if (type !== 'metamasksetlocked') { return } isEnabled = false }) // augment the provider with its enable method inpageProvider.enable = function ({ force } = {}) { return new Promise((resolve, reject) => { - window.removeEventListener('ethereumprovider', providerHandle) - providerHandle = ({ detail }) => { - if (typeof detail.error !== 'undefined') { - reject(detail.error) + window.removeEventListener('message', providerHandle) + providerHandle = ({ data: { type, error } }) => { + if (type !== 'ethereumprovider') { return } + if (typeof error !== 'undefined') { + reject(error) } else { + window.removeEventListener('message', providerHandle) // wait for the publicConfig store to populate with an account const publicConfig = new Promise((resolve) => { const { selectedAddress } = inpageProvider.publicConfigStore.getState() @@ -84,7 +95,7 @@ inpageProvider.enable = function ({ force } = {}) { .catch(reject) } } - window.addEventListener('ethereumprovider', providerHandle) + window.addEventListener('message', providerHandle) window.postMessage({ type: 'ETHEREUM_ENABLE_PROVIDER', force }, '*') }) } @@ -107,19 +118,21 @@ inpageProvider._metamask = new Proxy({ */ isApproved: function() { return new Promise((resolve, reject) => { - window.removeEventListener('ethereumisapproved', isApprovedHandle) - isApprovedHandle = ({ detail }) => { - if (typeof detail.error !== 'undefined') { - reject(detail.error) + window.removeEventListener('message', isApprovedHandle) + isApprovedHandle = ({ data: { caching, isApproved, error, type } }) => { + if (type !== 'ethereumisapproved') { return } + window.removeEventListener('message', isApprovedHandle) + if (typeof error !== 'undefined') { + reject(error) } else { - if (detail.caching) { - resolve(!!detail.isApproved) + if (caching) { + resolve(!!isApproved) } else { resolve(false) } } } - window.addEventListener('ethereumisapproved', isApprovedHandle) + window.addEventListener('message', isApprovedHandle) window.postMessage({ type: 'ETHEREUM_IS_APPROVED' }, '*') }) }, @@ -131,15 +144,17 @@ inpageProvider._metamask = new Proxy({ */ isUnlocked: function () { return new Promise((resolve, reject) => { - window.removeEventListener('metamaskisunlocked', isUnlockedHandle) - isUnlockedHandle = ({ detail }) => { - if (typeof detail.error !== 'undefined') { - reject(detail.error) + window.removeEventListener('message', isUnlockedHandle) + isUnlockedHandle = ({ data: { isUnlocked, error, type } }) => { + if (type !== 'metamaskisunlocked') { return } + window.removeEventListener('message', isUnlockedHandle) + if (typeof error !== 'undefined') { + reject(error) } else { - resolve(!!detail.isUnlocked) + resolve(!!isUnlocked) } } - window.addEventListener('metamaskisunlocked', isUnlockedHandle) + window.addEventListener('message', isUnlockedHandle) window.postMessage({ type: 'METAMASK_IS_UNLOCKED' }, '*') }) }, -- cgit From a224b71837a09af28213b5f6d3ac46a2416428e0 Mon Sep 17 00:00:00 2001 From: bitpshr Date: Wed, 7 Nov 2018 11:18:21 -0500 Subject: 1102: use postMessage instead of injected scripts to bypass CSP --- app/scripts/inpage.js | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'app') diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index 8ba3ea4a9..785237ff5 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -22,10 +22,17 @@ console.warn('ATTENTION: In an effort to improve user privacy, MetaMask ' + 'accounts. Please see https://bit.ly/2QQHXvF for complete information and up-to-date ' + 'example code.') -function once(messageType, handler) { +/** + * Adds a postMessage listener for a specific message type + * + * @param {string} messageType - postMessage type to listen for + * @param {Function} handler - event handler + * @param {boolean} remove - removes this handler after being triggered + */ +function onMessage(messageType, handler, remove) { window.addEventListener('message', function ({ data: { type } }) { if (type !== messageType) { return } - window.removeEventListener('message', handler) + remove && window.removeEventListener('message', handler) handler.apply(window, arguments) }) } @@ -47,17 +54,12 @@ var inpageProvider = new MetamaskInpageProvider(metamaskStream) inpageProvider.setMaxListeners(100) // set up a listener for when MetaMask is locked -window.addEventListener('message', ({ data: { type } }) => { - if (type !== 'metamasksetlocked') { return } - isEnabled = false -}) +onMessage('metamasksetlocked', ({ data: { type } }) => { isEnabled = false }) // augment the provider with its enable method inpageProvider.enable = function ({ force } = {}) { return new Promise((resolve, reject) => { - window.removeEventListener('message', providerHandle) providerHandle = ({ data: { type, error } }) => { - if (type !== 'ethereumprovider') { return } if (typeof error !== 'undefined') { reject(error) } else { @@ -95,7 +97,7 @@ inpageProvider.enable = function ({ force } = {}) { .catch(reject) } } - window.addEventListener('message', providerHandle) + onMessage('ethereumprovider', providerHandle, true) window.postMessage({ type: 'ETHEREUM_ENABLE_PROVIDER', force }, '*') }) } @@ -118,10 +120,7 @@ inpageProvider._metamask = new Proxy({ */ isApproved: function() { return new Promise((resolve, reject) => { - window.removeEventListener('message', isApprovedHandle) isApprovedHandle = ({ data: { caching, isApproved, error, type } }) => { - if (type !== 'ethereumisapproved') { return } - window.removeEventListener('message', isApprovedHandle) if (typeof error !== 'undefined') { reject(error) } else { @@ -132,7 +131,7 @@ inpageProvider._metamask = new Proxy({ } } } - window.addEventListener('message', isApprovedHandle) + onMessage('ethereumisapproved', isApprovedHandle, true) window.postMessage({ type: 'ETHEREUM_IS_APPROVED' }, '*') }) }, @@ -144,17 +143,14 @@ inpageProvider._metamask = new Proxy({ */ isUnlocked: function () { return new Promise((resolve, reject) => { - window.removeEventListener('message', isUnlockedHandle) isUnlockedHandle = ({ data: { isUnlocked, error, type } }) => { - if (type !== 'metamaskisunlocked') { return } - window.removeEventListener('message', isUnlockedHandle) if (typeof error !== 'undefined') { reject(error) } else { resolve(!!isUnlocked) } } - window.addEventListener('message', isUnlockedHandle) + onMessage('metamaskisunlocked', isUnlockedHandle, true) window.postMessage({ type: 'METAMASK_IS_UNLOCKED' }, '*') }) }, -- cgit From 718393f89a1bf99ff15bdfe1aa5c4301fbd56621 Mon Sep 17 00:00:00 2001 From: bitpshr Date: Wed, 7 Nov 2018 11:31:21 -0500 Subject: Cleanup --- app/scripts/inpage.js | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'app') diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index 785237ff5..a7c0b0416 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -54,12 +54,12 @@ var inpageProvider = new MetamaskInpageProvider(metamaskStream) inpageProvider.setMaxListeners(100) // set up a listener for when MetaMask is locked -onMessage('metamasksetlocked', ({ data: { type } }) => { isEnabled = false }) +onMessage('metamasksetlocked', () => { isEnabled = false }) // augment the provider with its enable method inpageProvider.enable = function ({ force } = {}) { return new Promise((resolve, reject) => { - providerHandle = ({ data: { type, error } }) => { + providerHandle = ({ data: { error } }) => { if (typeof error !== 'undefined') { reject(error) } else { @@ -119,16 +119,12 @@ inpageProvider._metamask = new Proxy({ * @returns {Promise} - Promise resolving to true if this domain has been previously approved */ isApproved: function() { - return new Promise((resolve, reject) => { - isApprovedHandle = ({ data: { caching, isApproved, error, type } }) => { - if (typeof error !== 'undefined') { - reject(error) + return new Promise((resolve) => { + isApprovedHandle = ({ data: { caching, isApproved } }) => { + if (caching) { + resolve(!!isApproved) } else { - if (caching) { - resolve(!!isApproved) - } else { - resolve(false) - } + resolve(false) } } onMessage('ethereumisapproved', isApprovedHandle, true) @@ -142,13 +138,9 @@ inpageProvider._metamask = new Proxy({ * @returns {Promise} - Promise resolving to true if MetaMask is currently unlocked */ isUnlocked: function () { - return new Promise((resolve, reject) => { - isUnlockedHandle = ({ data: { isUnlocked, error, type } }) => { - if (typeof error !== 'undefined') { - reject(error) - } else { - resolve(!!isUnlocked) - } + return new Promise((resolve) => { + isUnlockedHandle = ({ data: { isUnlocked } }) => { + resolve(!!isUnlocked) } onMessage('metamaskisunlocked', isUnlockedHandle, true) window.postMessage({ type: 'METAMASK_IS_UNLOCKED' }, '*') -- cgit From e53ceb6bc1182ee53f4fbba2308aaf25c76efcd9 Mon Sep 17 00:00:00 2001 From: Dan Finlay <542863+danfinlay@users.noreply.github.com> Date: Wed, 7 Nov 2018 09:07:14 -0800 Subject: Version 5.0.1 (#5694) --- app/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/manifest.json b/app/manifest.json index 2a9800400..7fd619a19 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_appName__", "short_name": "__MSG_appName__", - "version": "5.0.0", + "version": "5.0.1", "manifest_version": 2, "author": "https://metamask.io", "description": "__MSG_appDescription__", -- cgit From 8bed073f209a178d73d0a04cc72df034993b0998 Mon Sep 17 00:00:00 2001 From: Noah I Date: Fri, 9 Nov 2018 23:14:32 +1100 Subject: 1102: Fix inpage listener syntax (#5708) (#5709) --- app/scripts/inpage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index a7c0b0416..cfcf5e364 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -30,8 +30,8 @@ console.warn('ATTENTION: In an effort to improve user privacy, MetaMask ' + * @param {boolean} remove - removes this handler after being triggered */ function onMessage(messageType, handler, remove) { - window.addEventListener('message', function ({ data: { type } }) { - if (type !== messageType) { return } + window.addEventListener('message', function ({ data }) { + if (!data || data.type !== messageType) { return } remove && window.removeEventListener('message', handler) handler.apply(window, arguments) }) -- cgit From c3176248544e3e0019389b1f177cac68087bfe8f Mon Sep 17 00:00:00 2001 From: Paul Bouchon Date: Fri, 9 Nov 2018 20:40:32 -0500 Subject: EIP-1102: Update publicConfig store concurrently with approval --- app/scripts/contentscript.js | 8 +++-- app/scripts/controllers/provider-approval.js | 10 +++++-- app/scripts/inpage.js | 44 ++++++++++------------------ 3 files changed, 29 insertions(+), 33 deletions(-) (limited to 'app') diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index efb14233d..ee38ee3ab 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -147,11 +147,15 @@ function listenForProviderRequest () { } }) - extension.runtime.onMessage.addListener(({ action = '', isApproved, caching, isUnlocked }) => { + extension.runtime.onMessage.addListener(({ action = '', isApproved, caching, isUnlocked, selectedAddress }) => { switch (action) { case 'approve-provider-request': isEnabled = true - window.postMessage({ type: 'ethereumprovider' }, '*') + window.postMessage({ type: 'ethereumprovider', selectedAddress }, '*') + break + case 'approve-legacy-provider-request': + isEnabled = true + window.postMessage({ type: 'ethereumproviderlegacy', selectedAddress }, '*') break case 'reject-provider-request': window.postMessage({ type: 'ethereumprovider', error: 'User rejected provider access' }, '*') diff --git a/app/scripts/controllers/provider-approval.js b/app/scripts/controllers/provider-approval.js index d3b7f6dff..21d7fd22e 100644 --- a/app/scripts/controllers/provider-approval.js +++ b/app/scripts/controllers/provider-approval.js @@ -88,7 +88,10 @@ class ProviderApprovalController { _handlePrivacyRequest () { const privacyMode = this.preferencesController.getFeatureFlags().privacyMode if (!privacyMode) { - this.platform && this.platform.sendMessage({ action: 'approve-provider-request' }, { active: true }) + this.platform && this.platform.sendMessage({ + action: 'approve-legacy-provider-request', + selectedAddress: this.publicConfigStore.getState().selectedAddress, + }, { active: true }) this.publicConfigStore.emit('update', this.publicConfigStore.getState()) } } @@ -101,7 +104,10 @@ class ProviderApprovalController { approveProviderRequest (origin) { this.closePopup && this.closePopup() const requests = this.store.getState().providerRequests || [] - this.platform && this.platform.sendMessage({ action: 'approve-provider-request' }, { active: true }) + this.platform && this.platform.sendMessage({ + action: 'approve-provider-request', + selectedAddress: this.publicConfigStore.getState().selectedAddress, + }, { active: true }) this.publicConfigStore.emit('update', this.publicConfigStore.getState()) const providerRequests = requests.filter(request => request.origin !== origin) this.store.updateState({ providerRequests }) diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index cfcf5e364..83392761e 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -56,45 +56,31 @@ inpageProvider.setMaxListeners(100) // set up a listener for when MetaMask is locked onMessage('metamasksetlocked', () => { isEnabled = false }) +// set up a listener for privacy mode responses +onMessage('ethereumproviderlegacy', ({ data: { selectedAddress } }) => { + isEnabled = true + inpageProvider.publicConfigStore.updateState({ selectedAddress }) +}, true) + // augment the provider with its enable method inpageProvider.enable = function ({ force } = {}) { return new Promise((resolve, reject) => { - providerHandle = ({ data: { error } }) => { + providerHandle = ({ data: { error, selectedAddress } }) => { if (typeof error !== 'undefined') { reject(error) } else { window.removeEventListener('message', providerHandle) - // wait for the publicConfig store to populate with an account - const publicConfig = new Promise((resolve) => { - const { selectedAddress } = inpageProvider.publicConfigStore.getState() - inpageProvider._metamask.isUnlocked().then(unlocked => { - if (!unlocked || selectedAddress) { - resolve() - } else { - inpageProvider.publicConfigStore.on('update', ({ selectedAddress }) => { - selectedAddress && resolve() - }) - } - }) - }) + inpageProvider.publicConfigStore.updateState({ selectedAddress }) // wait for the background to update with an account - const ethAccounts = new Promise((resolveAccounts, rejectAccounts) => { - inpageProvider.sendAsync({ method: 'eth_accounts', params: [] }, (error, response) => { - if (error) { - rejectAccounts(error) - } else { - resolveAccounts(response.result) - } - }) - }) - - Promise.all([ethAccounts, publicConfig]) - .then(([selectedAddress]) => { + inpageProvider.sendAsync({ method: 'eth_accounts', params: [] }, (error, response) => { + if (error) { + reject(error) + } else { isEnabled = true - resolve(selectedAddress) - }) - .catch(reject) + resolve(response.result) + } + }) } } onMessage('ethereumprovider', providerHandle, true) -- cgit From da1036f2c4b20748407b7fa89b60df5e321fcab7 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Fri, 9 Nov 2018 18:25:44 -0800 Subject: Version 5.0.2 --- app/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/manifest.json b/app/manifest.json index 7fd619a19..2dd8429af 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_appName__", "short_name": "__MSG_appName__", - "version": "5.0.1", + "version": "5.0.2", "manifest_version": 2, "author": "https://metamask.io", "description": "__MSG_appDescription__", -- cgit From d943345151b7caf723533721a37ceea2e5286b9c Mon Sep 17 00:00:00 2001 From: Filip Š Date: Mon, 12 Nov 2018 17:15:55 +0100 Subject: Slovenian and slovak fixes (#5730) * Fix Slovenian translation * Add Slovak translation --- app/_locales/index.json | 3 +- app/_locales/sk/messages.json | 957 ++++++++++++++++++++++++++++++++++++ app/_locales/sl/messages.json | 1073 ++++++++++++++++++++++++++++------------- 3 files changed, 1703 insertions(+), 330 deletions(-) create mode 100644 app/_locales/sk/messages.json (limited to 'app') diff --git a/app/_locales/index.json b/app/_locales/index.json index 234215e39..30fb87faf 100644 --- a/app/_locales/index.json +++ b/app/_locales/index.json @@ -14,10 +14,11 @@ { "code": "pl", "name": "Polskie" }, { "code": "pt", "name": "Português" }, { "code": "ru", "name": "Русский" }, + { "code": "sk", "name": "Slovenčina" }, { "code": "sl", "name": "Slovenščina" }, { "code": "th", "name": "ไทย" }, { "code": "tml", "name": "தமிழ்" }, - { "code": "tr", "name": "Türkçe" }, + { "code": "tr", "name": "Türkçe" }, { "code": "vi", "name": "Tiếng Việt" }, { "code": "zh_CN", "name": "中文(简体)" }, { "code": "zh_TW", "name": "中文(繁體)" } diff --git a/app/_locales/sk/messages.json b/app/_locales/sk/messages.json new file mode 100644 index 000000000..fde553c9e --- /dev/null +++ b/app/_locales/sk/messages.json @@ -0,0 +1,957 @@ +{ + "privacyMode": { + "message": "Režim súkromia" + }, + "privacyModeDescription": { + "message": "Webové stránky musia požiadať o prístup k zobrazeniu informácií o vašom účte." + }, + "exposeAccounts": { + "message": "Vystavte účty" + }, + "exposeDescription": { + "message": "Vystavte účty na aktuální webové stránky. Užitečné pro starší dappy." + }, + "confirmExpose": { + "message": "Opravdu chcete své účty vystavit na stávajícím webu?" + }, + "confirmClear": { + "message": "Naozaj chcete vymazať schválené webové stránky?" + }, + "clearApprovalDataSuccess": { + "message": "Schválené údaje webových stránek byly úspěšně zrušeny." + }, + "approvalData": { + "message": "Údaje o schválení" + }, + "approvalDataDescription": { + "message": "Vymažte schválené údaje webových stránek, aby všechny weby znovu požádaly o schválení." + }, + "clearApprovalData": { + "message": "Jasné údaje o schválení" + }, + "approve": { + "message": "Schválit" + }, + "reject": { + "message": "Odmítnout" + }, + "providerAPIRequest": { + "message": "Požadavek API Ethereum" + }, + "reviewProviderRequest": { + "message": "Přečtěte si prosím tuto žádost API Ethereum." + }, + "providerRequestInfo": { + "message": "Níže uvedená doména se pokouší požádat o přístup k API Ethereum, aby mohla komunikovat s blokádou Ethereum. Před schválením přístupu Ethereum vždy zkontrolujte, zda jste na správném místě." + }, + "accept": { + "message": "Přijmout" + }, + "account": { + "message": "Účet" + }, + "accountDetails": { + "message": "Detaily účtu" + }, + "accountName": { + "message": "Název účtu" + }, + "address": { + "message": "Adresa" + }, + "addCustomToken": { + "message": "Přidat vlastní token" + }, + "addToken": { + "message": "Přidat token" + }, + "addTokens": { + "message": "Přidat tokeny" + }, + "amount": { + "message": "Částka" + }, + "amountPlusGas": { + "message": "Částka + palivo" + }, + "appDescription": { + "message": "Ethereum rozšíření prohlížeče", + "description": "The description of the application" + }, + "appName": { + "message": "MetaMask", + "description": "The name of the application" + }, + "approved": { + "message": "Schváleno" + }, + "attemptingConnect": { + "message": "Pokouším se připojit k blockchainu." + }, + "attributions": { + "message": "Zásluhy" + }, + "available": { + "message": "Dostupné" + }, + "back": { + "message": "Zpět" + }, + "balance": { + "message": "Zůstatek:" + }, + "balances": { + "message": "Zůstatek tokenu" + }, + "balanceIsInsufficientGas": { + "message": "Nedostatek prostředků pro aktuální množství paliva" + }, + "beta": { + "message": "BETA" + }, + "betweenMinAndMax": { + "message": "musí být větší nebo roven $1 a menší nebo roven $2.", + "description": "helper for inputting hex as decimal input" + }, + "blockiesIdenticon": { + "message": "Použít Blockies Identicon" + }, + "borrowDharma": { + "message": "Pújčit si přes Dharma (Beta)" + }, + "builtInCalifornia": { + "message": "MetaMask je navržen a vytvořen v Kalifornii." + }, + "buy": { + "message": "Koupit" + }, + "buyCoinbase": { + "message": "Nákup na Coinbase" + }, + "buyCoinbaseExplainer": { + "message": "Coinbase je světově nejoblíbenější místo k nákupu a prodeji bitcoinu, etherea nebo litecoinu." + }, + "ok": { + "message": "Ok" + }, + "cancel": { + "message": "Zrušit" + }, + "classicInterface": { + "message": "Použít klasické rozhraní" + }, + "clickCopy": { + "message": "Kliknutím zkopírovat" + }, + "confirm": { + "message": "Potvrdit" + }, + "confirmed": { + "message": "Potvrzeno" + }, + "confirmContract": { + "message": "Potvrdit kontrakt" + }, + "confirmPassword": { + "message": "Potvrdit heslo" + }, + "confirmTransaction": { + "message": "Potvrdit transakci" + }, + "continue": { + "message": "Pokračovat" + }, + "continueToCoinbase": { + "message": "Přejít na Coinbase" + }, + "contractDeployment": { + "message": "Nasazení kontraktu" + }, + "conversionProgress": { + "message": "Provádí se převod" + }, + "copiedButton": { + "message": "Zkopírováno" + }, + "copiedClipboard": { + "message": "Zkopírováno do schránky" + }, + "copiedExclamation": { + "message": "Zkopírováno!" + }, + "copiedSafe": { + "message": "Zkopíroval jsem to na bezpečné místo" + }, + "copy": { + "message": "Kopírovat" + }, + "copyToClipboard": { + "message": "Kopírovat do schránky" + }, + "copyButton": { + "message": " Kopírovat " + }, + "copyPrivateKey": { + "message": "Toto je váš privátní klíč (kliknutím zkopírujte)" + }, + "create": { + "message": "Vytvořit" + }, + "createAccount": { + "message": "Vytvořit účet" + }, + "createDen": { + "message": "Vytvořit" + }, + "crypto": { + "message": "Krypto", + "description": "Exchange type (cryptocurrencies)" + }, + "currentConversion": { + "message": "Aktuální převod" + }, + "currentNetwork": { + "message": "Aktuální síť" + }, + "customGas": { + "message": "Nastavit palivo" + }, + "customToken": { + "message": "Vlastní token" + }, + "customize": { + "message": "Nastavit" + }, + "customRPC": { + "message": "Vlastní RPC" + }, + "decimalsMustZerotoTen": { + "message": "Desetinných míst musí být od 0 do 36." + }, + "decimal": { + "message": "Počet desetinných míst přesnosti" + }, + "defaultNetwork": { + "message": "Výchozí síť pro Etherové transakce je Main Net." + }, + "denExplainer": { + "message": "Váš DEN je heslem šifrované uložiště v MetaMasku." + }, + "deposit": { + "message": "Vklad" + }, + "depositBTC": { + "message": "Vložte BTC na níže uvedenou adresu:" + }, + "depositCoin": { + "message": "Vložte $1 na níže uvedenou adresu", + "description": "Tells the user what coin they have selected to deposit with shapeshift" + }, + "depositEth": { + "message": "Vložit Eth" + }, + "depositEther": { + "message": "Vložit Ether" + }, + "depositFiat": { + "message": "Vklad s fiat měnou" + }, + "depositFromAccount": { + "message": "Vložte z jiného účtu" + }, + "depositShapeShift": { + "message": "Vklad přes ShapeShift" + }, + "depositShapeShiftExplainer": { + "message": "Pokud vlastníte jiné kryptoměny, můžete je směnit Ether a vložit ho přímo do peněženky MetaMask. Bez založení účtu." + }, + "details": { + "message": "Podrobnosti" + }, + "directDeposit": { + "message": "Přímý vklad" + }, + "directDepositEther": { + "message": "Vložit Ether přímo" + }, + "directDepositEtherExplainer": { + "message": "Pokud už vlastníte nějaký Ether, nejrychleji ho dostanete do peněženky přímým vkladem." + }, + "done": { + "message": "Hotovo" + }, + "downloadStateLogs": { + "message": "Stáhnout stavové protokoly" + }, + "dropped": { + "message": "Zrušeno" + }, + "edit": { + "message": "Upravit" + }, + "editAccountName": { + "message": "Upravit název účtu" + }, + "emailUs": { + "message": "Napište nám e-mail!" + }, + "encryptNewDen": { + "message": "Zašifrujte svůj nový DEN" + }, + "enterPassword": { + "message": "Zadejte heslo" + }, + "enterPasswordConfirm": { + "message": "Zadejte heslo k potvrzení" + }, + "passwordNotLongEnough": { + "message": "Heslo není dost dlouhé" + }, + "passwordsDontMatch": { + "message": "Hesla nejsou stejná" + }, + "etherscanView": { + "message": "Prohlédněte si účet na Etherscan" + }, + "exchangeRate": { + "message": "Směnný kurz" + }, + "exportPrivateKey": { + "message": "Exportovat privátní klíč" + }, + "exportPrivateKeyWarning": { + "message": "Exportujte privátní klíč na vlastní riziko." + }, + "failed": { + "message": "Neúspěšné" + }, + "fiat": { + "message": "FIAT", + "description": "Exchange type" + }, + "fileImportFail": { + "message": "Import souboru nefunguje? Klikněte sem!", + "description": "Helps user import their account from a JSON file" + }, + "followTwitter": { + "message": "Sledujte nás na Twitteru" + }, + "from": { + "message": "Od" + }, + "fromToSame": { + "message": "Adresy odesílatele a příjemce nemohou být stejné" + }, + "fromShapeShift": { + "message": "Z ShapeShift" + }, + "gas": { + "message": "Palivo", + "description": "Short indication of gas cost" + }, + "gasFee": { + "message": "Poplatek za palivo" + }, + "gasLimit": { + "message": "Limit paliva" + }, + "gasLimitCalculation": { + "message": "Počítáme doporučený limit paliva na základě úspěšnosti v síti." + }, + "gasLimitRequired": { + "message": "Limit paliva je povinný" + }, + "gasLimitTooLow": { + "message": "Limit paliva musí být alespoň 21000" + }, + "generatingSeed": { + "message": "Generuji klíčovou frázi..." + }, + "gasPrice": { + "message": "Cena paliva (GWEI)" + }, + "gasPriceCalculation": { + "message": "Počítáme doporučenou cenu paliva na základě úspěšnosti v síti." + }, + "gasPriceRequired": { + "message": "Cena paliva je povinná" + }, + "getEther": { + "message": "Získejte Ether" + }, + "getEtherFromFaucet": { + "message": "Získejte Ether z faucetu za $1.", + "description": "Displays network name for Ether faucet" + }, + "greaterThanMin": { + "message": "musí být větší nebo roven $1.", + "description": "helper for inputting hex as decimal input" + }, + "here": { + "message": "zde", + "description": "as in -click here- for more information (goes with troubleTokenBalances)" + }, + "hereList": { + "message": "Tady je seznam!!!!" + }, + "hide": { + "message": "Skrýt" + }, + "hideToken": { + "message": "Skrýt token" + }, + "hideTokenPrompt": { + "message": "Skrýt token?" + }, + "howToDeposit": { + "message": "Jakým způsobem chcete vložit Ether?" + }, + "holdEther": { + "message": "Dovoluje vám držet ether a tokeny a slouží jako most k decentralizovaným aplikacím." + }, + "import": { + "message": "Import", + "description": "Button to import an account from a selected file" + }, + "importAccount": { + "message": "Import účtu" + }, + "importAccountMsg": { + "message": "Importované účty nebudou spojeny s vaší původní MetaMaskovou klíčovou frází. Zjistěte více o importovaných účtech " + }, + "importAnAccount": { + "message": "Import účtu" + }, + "importDen": { + "message": "Import existujícího DEN" + }, + "imported": { + "message": "Importováno", + "description": "status showing that an account has been fully loaded into the keyring" + }, + "infoHelp": { + "message": "Informace a nápověda" + }, + "insufficientFunds": { + "message": "Nedostatek finančních prostředků." + }, + "insufficientTokens": { + "message": "Nedostatek tokenů." + }, + "invalidAddress": { + "message": "Neplatná adresa" + }, + "invalidAddressRecipient": { + "message": "Adresa příjemce je neplatná" + }, + "invalidGasParams": { + "message": "Neplatná parametry paliva" + }, + "invalidInput": { + "message": "Neplatný vstup." + }, + "invalidRequest": { + "message": "Neplatný požadavek" + }, + "invalidRPC": { + "message": "Neplatné RPC URI" + }, + "jsonFail": { + "message": "Něco se pokazilo. Prosím, ujistěte se, že váš JSON soubor má správný formát." + }, + "jsonFile": { + "message": "JSON soubor", + "description": "format for importing an account" + }, + "keepTrackTokens": { + "message": "Udržujte si záznamy o tokenech, které jste koupili s účtem v MetaMasku." + }, + "kovan": { + "message": "Kovan Test Network" + }, + "knowledgeDataBase": { + "message": "Navštivte naši Knowledge Base" + }, + "max": { + "message": "Max" + }, + "learnMore": { + "message": "Zjistěte více." + }, + "lessThanMax": { + "message": "musí být menší nebo roven $1.", + "description": "helper for inputting hex as decimal input" + }, + "likeToAddTokens": { + "message": "Chcete přidat tyto tokeny?" + }, + "links": { + "message": "Odkazy" + }, + "limit": { + "message": "Limit" + }, + "loading": { + "message": "Načítám..." + }, + "loadingTokens": { + "message": "Načítám tokeny..." + }, + "localhost": { + "message": "Localhost 8545" + }, + "login": { + "message": "Přihlásit" + }, + "logout": { + "message": "Odhlásit" + }, + "loose": { + "message": "Nevázané" + }, + "loweCaseWords": { + "message": "slova klíčové fráze mají pouze malá písmena" + }, + "mainnet": { + "message": "Main Ethereum Network" + }, + "message": { + "message": "Zpráva" + }, + "metamaskDescription": { + "message": "MetaMask je bezpečný osobní trezor pro Ethereum." + }, + "min": { + "message": "Minimum" + }, + "myAccounts": { + "message": "Moje účty" + }, + "mustSelectOne": { + "message": "Musíte zvolit aspoň 1 token." + }, + "needEtherInWallet": { + "message": "Potřebujete Ether v peněžence, abyste mohli pomocí MetaMasku interagovat s decentralizovanými aplikacemi." + }, + "needImportFile": { + "message": "Musíte zvolit soubor k importu.", + "description": "User is important an account and needs to add a file to continue" + }, + "needImportPassword": { + "message": "Musíte zadat heslo pro zvolený soubor.", + "description": "Password and file needed to import an account" + }, + "negativeETH": { + "message": "Nelze odeslat zápornou částku ETH." + }, + "networks": { + "message": "Sítě" + }, + "newAccount": { + "message": "Nový účet" + }, + "newAccountNumberName": { + "message": "Účet $1", + "description": "Default name of next account to be created on create account screen" + }, + "newContract": { + "message": "Nový kontrakt" + }, + "newPassword": { + "message": "Nové heslo (min 8 znaků)" + }, + "newRecipient": { + "message": "Nový příjemce" + }, + "newRPC": { + "message": "Nová RPC URL" + }, + "next": { + "message": "Další" + }, + "noAddressForName": { + "message": "Pro toto jméno nebyla nastavena žádná adresa." + }, + "noDeposits": { + "message": "Žádný vklad" + }, + "noTransactionHistory": { + "message": "Žádná historie transakcí." + }, + "noTransactions": { + "message": "Žádné transakce" + }, + "notStarted": { + "message": "Nezačalo" + }, + "oldUI": { + "message": "Staré rozhraní" + }, + "oldUIMessage": { + "message": "Vrátili jste se ke starému rozhraní. Můžete přepnout na nové rozhraní v nastavení v pravém horním menu." + }, + "or": { + "message": "nebo", + "description": "choice between creating or importing a new account" + }, + "passwordCorrect": { + "message": "Ujistěte se, že je vaše heslo správně." + }, + "passwordMismatch": { + "message": "hesla nesouhlasí", + "description": "in password creation process, the two new password fields did not match" + }, + "passwordShort": { + "message": "heslo je krátké", + "description": "in password creation process, the password is not long enough to be secure" + }, + "pastePrivateKey": { + "message": "Vložte zde svůj privátní klíč:", + "description": "For importing an account from a private key" + }, + "pasteSeed": { + "message": "Svou klíčovou frázi vložte zde!" + }, + "personalAddressDetected": { + "message": "Detekována osobní adresa. Zadejte adresu kontraktu tokenu." + }, + "pleaseReviewTransaction": { + "message": "Zkontrolujte si transakci." + }, + "popularTokens": { + "message": "Oblíbené tokeny" + }, + "privacyMsg": { + "message": "Zásady ochrany osobních údajů" + }, + "privateKey": { + "message": "Privátní klíč", + "description": "select this type of file to use to import an account" + }, + "privateKeyWarning": { + "message": "Upozornění: Nikdy nezveřejněte tento klíč. Kdokoli může s vaším privátním klíčem odcizit vaše aktiva z účtu." + }, + "privateNetwork": { + "message": "Soukromá síť" + }, + "qrCode": { + "message": "Ukázat QR kód" + }, + "readdToken": { + "message": "Tento token můžete v budoucnu přidat zpět s „Přidat token“ v nastavení účtu." + }, + "readMore": { + "message": "Přečtěte si více zde." + }, + "readMore2": { + "message": "Přečtěte si více." + }, + "receive": { + "message": "Obrdžet" + }, + "recipientAddress": { + "message": "Adresa příjemce" + }, + "refundAddress": { + "message": "Adresa pro vrácení peněz" + }, + "rejected": { + "message": "Odmítnuto" + }, + "resetAccount": { + "message": "Resetovat účet" + }, + "restoreFromSeed": { + "message": "Obnovit z seed fráze" + }, + "restoreVault": { + "message": "Obnovit trezor" + }, + "required": { + "message": "Povinné" + }, + "retryWithMoreGas": { + "message": "Opakujte s vyšší cenou paliva" + }, + "walletSeed": { + "message": "Klíčová fráze peněženky" + }, + "revealSeedWords": { + "message": "Zobrazit slova klíčové fráze" + }, + "revealSeedWordsWarning": { + "message": "Nebnovujte slova klíčové fráze na veřejnosti! Tato slova mohou být použita k odcizení veškerých vyašich účtů." + }, + "revert": { + "message": "Zvrátit" + }, + "rinkeby": { + "message": "Rinkeby Test Network" + }, + "ropsten": { + "message": "Ropsten Test Network" + }, + "currentRpc": { + "message": "Současné RPC" + }, + "connectingToMainnet": { + "message": "Připojuji se k Main Ethereum Network" + }, + "connectingToRopsten": { + "message": "Připojuji se k Ropsten Test Network" + }, + "connectingToKovan": { + "message": "Připojuji se k Kovan Test Network" + }, + "connectingToRinkeby": { + "message": "Připojuji se k Rinkeby Test Network" + }, + "connectingToUnknown": { + "message": "Připojuji se k neznámé síti" + }, + "sampleAccountName": { + "message": "Např. můj nový účet", + "description": "Help user understand concept of adding a human-readable name to their account" + }, + "save": { + "message": "Uložit" + }, + "reprice_title": { + "message": "Změnit cenu transakce" + }, + "reprice_subtitle": { + "message": "Navyšte cenu paliva ve snaze k přepsání a urychlení vyší transakce" + }, + "saveAsFile": { + "message": "Uložit do souboru", + "description": "Account export process" + }, + "saveSeedAsFile": { + "message": "Uložit slova klíčové fráze do souboru" + }, + "search": { + "message": "Hledat" + }, + "secretPhrase": { + "message": "Zadejte svých 12 slov tajné fráze k obnovení trezoru." + }, + "newPassword8Chars": { + "message": "Nové heslo (min 8 znaků)" + }, + "seedPhraseReq": { + "message": "klíčové fráze mají 12 slov" + }, + "select": { + "message": "Vybrat" + }, + "selectCurrency": { + "message": "Vybrat měnu" + }, + "selectService": { + "message": "Vybrat službu" + }, + "selectType": { + "message": "Vybrat typ" + }, + "send": { + "message": "Odeslat" + }, + "sendETH": { + "message": "Odeslat ETH" + }, + "sendTokens": { + "message": "Odeslat tokeny" + }, + "onlySendToEtherAddress": { + "message": "Posílejte jen ETH na Ethereum adresu." + }, + "searchTokens": { + "message": "Hledat tokeny" + }, + "sendTokensAnywhere": { + "message": "Posílejte tokeny komukoli s Ethereum účtem" + }, + "settings": { + "message": "Nastavení" + }, + "info": { + "message": "Informace" + }, + "shapeshiftBuy": { + "message": "Nakoupit na ShapeShift" + }, + "showPrivateKeys": { + "message": "Zobrazit privátní klíče" + }, + "showQRCode": { + "message": "Zobrazit QR kód" + }, + "sign": { + "message": "Podepsat" + }, + "signed": { + "message": "Podepsáno" + }, + "signMessage": { + "message": "Podepsat zprávu" + }, + "signNotice": { + "message": "Podepsání zprávy může mít \nnebezpečný vedlejší učinek. Podepisujte zprávy pouze ze \nstránek, kterým plně důvěřujete celým svým účtem.\n Tato nebezpečná metoda bude odebrána v budoucí verzi. " + }, + "sigRequest": { + "message": "Požadavek podpisu" + }, + "sigRequested": { + "message": "Požádáno o podpis" + }, + "spaceBetween": { + "message": "mezi slovy může být pouze mezera" + }, + "status": { + "message": "Stav" + }, + "stateLogs": { + "message": "Stavové protokoly" + }, + "stateLogsDescription": { + "message": "Stavové protokoly obsahují vaše veřejné adresy účtů a odeslané transakce." + }, + "stateLogError": { + "message": "Chyba během získávání stavových protokolů." + }, + "submit": { + "message": "Odeslat" + }, + "submitted": { + "message": "Odesláno" + }, + "supportCenter": { + "message": "Navštivte naše centrum podpory" + }, + "symbolBetweenZeroTen": { + "message": "Symbol musí být mezi 0 a 10 znaky." + }, + "takesTooLong": { + "message": "Trvá to dlouho?" + }, + "terms": { + "message": "Podmínky použití" + }, + "testFaucet": { + "message": "Testovací faucet" + }, + "to": { + "message": "Komu" + }, + "toETHviaShapeShift": { + "message": "$1 na ETH přes ShapeShift", + "description": "system will fill in deposit type in start of message" + }, + "tokenAddress": { + "message": "Adresa tokenu" + }, + "tokenAlreadyAdded": { + "message": "Token byl už přidán." + }, + "tokenBalance": { + "message": "Váš zůstatek tokenu je:" + }, + "tokenSelection": { + "message": "Vyhledejte token nebo je vyberte z našeho seznamu oblíbených tokenů." + }, + "tokenSymbol": { + "message": "Symbol tokenu" + }, + "tokenWarning1": { + "message": "Mějte přehled o tokenech, které jste koupili s účtem MetaMasku. Pokud jste koupili tokeny s jiným účtem, tyto tokeny se zde nezobrazí." + }, + "total": { + "message": "Celkem" + }, + "transactions": { + "message": "transakce" + }, + "transactionError": { + "message": "Chyba transakce. Vyhozena výjimka v kódu kontraktu." + }, + "transactionMemo": { + "message": "Poznámka transakce (nepovinné)" + }, + "transactionNumber": { + "message": "Číslo transakce" + }, + "transfers": { + "message": "Převody" + }, + "troubleTokenBalances": { + "message": "Měli jsme problém s načtením vašich tokenových zůstatků. Můžete je vidět ", + "description": "Followed by a link (here) to view token balances" + }, + "twelveWords": { + "message": "Těchto 12 slov je jedinou možností, jak obnovit MetaMask účet. \nUložte je na bezpečné a neveřejné místo." + }, + "typePassword": { + "message": "Zadejte své heslo" + }, + "uiWelcome": { + "message": "Vítejte v novém rozhraní (Beta)" + }, + "uiWelcomeMessage": { + "message": "Používáte nyní nové rozhraní MetaMasku. Rozhlédněte se kolem, vyzkoušejte nové funkce, jako jsou zasílání tokenů, a dejte nám vědět, pokud narazíte na problém." + }, + "unapproved": { + "message": "Neschváleno" + }, + "unavailable": { + "message": "Nedostupné" + }, + "unknown": { + "message": "Neznámé" + }, + "unknownNetwork": { + "message": "Neznámá soukromá síť" + }, + "unknownNetworkId": { + "message": "Neznámé ID sítě" + }, + "uriErrorMsg": { + "message": "URI vyžadují korektní HTTP/HTTPS prefix." + }, + "usaOnly": { + "message": "jen v USA", + "description": "Using this exchange is limited to people inside the USA" + }, + "usedByClients": { + "message": "Používána různými klienty" + }, + "useOldUI": { + "message": "Použijte staré rozhraní" + }, + "validFileImport": { + "message": "Musíte vybrat validní soubor k importu." + }, + "vaultCreated": { + "message": "Trezor vytvořen" + }, + "viewAccount": { + "message": "Zobrazit účet" + }, + "visitWebSite": { + "message": "Navštivte naši stránku" + }, + "warning": { + "message": "Varování" + }, + "welcomeBeta": { + "message": "Vítejte v MetaMask Beta" + }, + "whatsThis": { + "message": "Co to je?" + }, + "yourSigRequested": { + "message": "Je vyžadován váš podpis" + }, + "youSign": { + "message": "Podepisujete" + } +} diff --git a/app/_locales/sl/messages.json b/app/_locales/sl/messages.json index b9c4ff8e0..ee9f67b97 100644 --- a/app/_locales/sl/messages.json +++ b/app/_locales/sl/messages.json @@ -1,957 +1,1372 @@ { "privacyMode": { - "message": "Režim súkromia" + "message": "Zasebnostni način" }, "privacyModeDescription": { - "message": "Webové stránky musia požiadať o prístup k zobrazeniu informácií o vašom účte." + "message": "Spletne strani morajo zahtevati dovoljenje za ogled podatkov o vašem računu." }, "exposeAccounts": { - "message": "Vystavte účty" + "message": "Razkrij račune" }, "exposeDescription": { - "message": "Vystavte účty na aktuální webové stránky. Užitečné pro starší dappy." + "message": "Razkrij račune trenutni spletni strani. Priporočeno za starejše dApps." }, "confirmExpose": { - "message": "Opravdu chcete své účty vystavit na stávajícím webu?" + "message": "Ste prepričani da želite razkriti račune trenutni spletni strani?" }, "confirmClear": { - "message": "Naozaj chcete vymazať schválené webové stránky?" + "message": "Ste prepričani da želite počistiti odobrene spletne strani?" }, "clearApprovalDataSuccess": { - "message": "Schválené údaje webových stránek byly úspěšně zrušeny." + "message": "Odobrene spletne strani uspešno počiščene." }, "approvalData": { - "message": "Údaje o schválení" + "message": "Podatki o odobritvi" }, "approvalDataDescription": { - "message": "Vymažte schválené údaje webových stránek, aby všechny weby znovu požádaly o schválení." + "message": "Počistite seznam odobrenih spletnih strani, tako da bodo morale ponovno zahtevati odobritev." }, "clearApprovalData": { - "message": "Jasné údaje o schválení" - }, - "approve": { - "message": "Schválit" - }, - "reject": { - "message": "Odmítnout" + "message": "Počisti podatke o odobritvi" }, "providerAPIRequest": { - "message": "Požadavek API Ethereum" + "message": "Zahteva za Ethereum API" }, "reviewProviderRequest": { - "message": "Přečtěte si prosím tuto žádost API Ethereum." + "message": "Preglejte zahtevo za Ethereum API." }, "providerRequestInfo": { - "message": "Níže uvedená doména se pokouší požádat o přístup k API Ethereum, aby mohla komunikovat s blokádou Ethereum. Před schválením přístupu Ethereum vždy zkontrolujte, zda jste na správném místě." + "message": "Domena zahteva dostop do verige blokov in ogled vašega računa. Pred potrditvjo vedno preverite ali ste na želeni spletni strani." }, "accept": { - "message": "Přijmout" + "message": "Potrdi" + }, + "accessingYourCamera": { + "message": "Dostopanje do vaše kamere ..." }, "account": { - "message": "Účet" + "message": "Račun" }, "accountDetails": { - "message": "Detaily účtu" + "message": "Podrobnosti računa" }, "accountName": { - "message": "Název účtu" + "message": "Ime računa" + }, + "accountOptions": { + "message": "Možnosti računa" + }, + "accountSelectionRequired": { + "message": "Izbrati morate račun!" + }, + "activityLog": { + "message": "dnevnik dejavnosti" }, "address": { - "message": "Adresa" + "message": "Naslov" }, "addCustomToken": { - "message": "Přidat vlastní token" + "message": "Dodaj žeton po meri" }, "addToken": { - "message": "Přidat token" + "message": "Dodaj žeton" }, "addTokens": { - "message": "Přidat tokeny" + "message": "Dodaj žetone" + }, + "addSuggestedTokens": { + "message": "Dodaj priporočene žetone" + }, + "addAcquiredTokens": { + "message": "Dodaj žetone pridobljene z MetaMask" }, "amount": { - "message": "Částka" + "message": "Znesek" }, "amountPlusGas": { - "message": "Částka + palivo" + "message": "Znesek + Gas" }, "appDescription": { - "message": "Ethereum rozšíření prohlížeče", + "message": "Denarnica za Ethereum v brskalniku", "description": "The description of the application" }, "appName": { "message": "MetaMask", "description": "The name of the application" }, + "approve": { + "message": "Potrdi" + }, "approved": { - "message": "Schváleno" + "message": "Potrjeno" }, "attemptingConnect": { - "message": "Pokouším se připojit k blockchainu." + "message": "Povezovanje z verigo blokov ..." + }, + "attemptToCancel": { + "message": "Želite preklicati?" + }, + "attemptToCancelDescription": { + "message": "Če pošljete ta poskus, ne boste zagotovili, da bo vaša prvotna transakcija preklicana. Če bo poskus preklica uspešen, se bo zaračunala zgornja transakcija." }, "attributions": { - "message": "Zásluhy" + "message": "Dodelitve" }, "available": { - "message": "Dostupné" + "message": "Na voljo" }, "back": { - "message": "Zpět" + "message": "Nazaj" }, "balance": { - "message": "Zůstatek:" + "message": "Znesek" }, "balances": { - "message": "Zůstatek tokenu" + "message": "Znesek žetonov" }, "balanceIsInsufficientGas": { - "message": "Nedostatek prostředků pro aktuální množství paliva" + "message": "Nezadnosten znesek za trenutni gas" }, "beta": { "message": "BETA" }, "betweenMinAndMax": { - "message": "musí být větší nebo roven $1 a menší nebo roven $2.", + "message": "mora biti večji ali enak $1 in manjši ali enak $1.", "description": "helper for inputting hex as decimal input" }, "blockiesIdenticon": { - "message": "Použít Blockies Identicon" + "message": "Uporabi identifikacijo Blockies" }, "borrowDharma": { - "message": "Pújčit si přes Dharma (Beta)" + "message": "Izposoja z Dharma (Beta)" + }, + "browserNotSupported": { + "message": "Vaš brskalnik ni podptrt ..." }, "builtInCalifornia": { - "message": "MetaMask je navržen a vytvořen v Kalifornii." + "message": "MetaMask je zasnovan in ustvarjen v Kaliforniji." }, "buy": { - "message": "Koupit" + "message": "Kupi" }, "buyCoinbase": { - "message": "Nákup na Coinbase" + "message": "Kupi na Coinbase" }, "buyCoinbaseExplainer": { - "message": "Coinbase je světově nejoblíbenější místo k nákupu a prodeji bitcoinu, etherea nebo litecoinu." + "message": "Coinbase je najpopularnejši načun za kupovanje in prodajo bitcoinov, ethereuma, in litecoina." + }, + "bytes": { + "message": "Bajti" }, "ok": { - "message": "Ok" + "message": "V redu" }, "cancel": { - "message": "Zrušit" + "message": "Prekliči" + }, + "cancelAttempt": { + "message": "Prekliči poskus" + }, + "cancellationGasFee": { + "message": "Preklicani znesek gas" + }, + "cancelN": { + "message": "Prekliči vseh $1 transakcij" }, "classicInterface": { - "message": "Použít klasické rozhraní" + "message": "Uporabi klasični vmesnik" }, "clickCopy": { - "message": "Kliknutím zkopírovat" + "message": "Kliknite za kopiranje" + }, + "clickToAdd": { + "message": "Kliknite na $1 za dodajo v vaš račun" + }, + "close": { + "message": "Zapri" + }, + "chromeRequiredForHardwareWallets": { + "message": "Za uporabo strojne denarnice potrebujete Google Chrome." }, "confirm": { - "message": "Potvrdit" + "message": "Potrdi" }, "confirmed": { - "message": "Potvrzeno" + "message": "Potrjeno" }, "confirmContract": { - "message": "Potvrdit kontrakt" + "message": "Potrdi pogodbo" }, "confirmPassword": { - "message": "Potvrdit heslo" + "message": "Potrdi geslo" }, "confirmTransaction": { - "message": "Potvrdit transakci" + "message": "Potrdi transakcijo" + }, + "connectHardwareWallet": { + "message": "Poveži strojno denarnico" + }, + "connect": { + "message": "Poveži" + }, + "connecting": { + "message": "Povezovanje ..." + }, + "connectingToKovan": { + "message": "Povezovanje na testno omrežje Kovan" + }, + "connectingToMainnet": { + "message": "Povezovanje na glavno omrežje" + }, + "connectingToRopsten": { + "message": "Povezovanje na testno omrežje Ropsten" + }, + "connectingToRinkeby": { + "message": "Povezovanje na testno omrežje Rinkeby" + }, + "connectingToUnknown": { + "message": "Povezovanje na neznano omrežje" + }, + "connectToLedger": { + "message": "Poveži z Ledger" + }, + "connectToTrezor": { + "message": "Poveži z Trezor" }, "continue": { - "message": "Pokračovat" + "message": "Nadaljuj" }, "continueToCoinbase": { - "message": "Přejít na Coinbase" + "message": "Nadaljuj na Coinbase" }, "contractDeployment": { - "message": "Nasazení kontraktu" + "message": "Ustvarjanje pogodbe" }, "conversionProgress": { - "message": "Provádí se převod" + "message": "Pretvorba v teku" }, "copiedButton": { - "message": "Zkopírováno" + "message": "Kopirano" }, "copiedClipboard": { - "message": "Zkopírováno do schránky" + "message": "Kopirano v odložišče!" }, "copiedExclamation": { - "message": "Zkopírováno!" + "message": "Kopirano!" }, "copiedSafe": { - "message": "Zkopíroval jsem to na bezpečné místo" + "message": "Prilepil sem ga na varno" }, "copy": { - "message": "Kopírovat" + "message": "Kopiraj" + }, + "copyAddress": { + "message": "Kopiraj naslov v odložišče" }, "copyToClipboard": { - "message": "Kopírovat do schránky" + "message": "Kopiraj v odložišče" }, "copyButton": { - "message": " Kopírovat " + "message": " Kopiraj " }, "copyPrivateKey": { - "message": "Toto je váš privátní klíč (kliknutím zkopírujte)" + "message": "To je vaš zesebni ključ (kliknite za kopiranje)" }, "create": { - "message": "Vytvořit" + "message": "Ustvari" }, "createAccount": { - "message": "Vytvořit účet" + "message": "Ustvari račun" }, "createDen": { - "message": "Vytvořit" + "message": "Ustvari" }, "crypto": { - "message": "Krypto", + "message": "Kripto", "description": "Exchange type (cryptocurrencies)" }, "currentConversion": { - "message": "Aktuální převod" + "message": "Trenutna pretvorba" + }, + "currentLanguage": { + "message": "Trenutni jezik" }, "currentNetwork": { - "message": "Aktuální síť" + "message": "Trenutno omrežje" + }, + "currentRpc": { + "message": "Trenutni RPC" }, "customGas": { - "message": "Nastavit palivo" + "message": "Prilagodi gas" }, "customToken": { - "message": "Vlastní token" + "message": "Žeton po meri" }, "customize": { - "message": "Nastavit" + "message": "Prilagodi" }, "customRPC": { - "message": "Vlastní RPC" + "message": "RPC po meri" }, "decimalsMustZerotoTen": { - "message": "Desetinných míst musí být od 0 do 36." + "message": "Decimalk mora biti med 0 in 36." }, "decimal": { - "message": "Počet desetinných míst přesnosti" + "message": "Decimalna natančnost" }, "defaultNetwork": { - "message": "Výchozí síť pro Etherové transakce je Main Net." + "message": "Privzeto omrežje za transkacije je glavno omrežje." }, "denExplainer": { - "message": "Váš DEN je heslem šifrované uložiště v MetaMasku." + "message": "Vaš DEN je z geslom šifrirana shramba v MetaMask." }, "deposit": { - "message": "Vklad" + "message": "Vplačaj" }, "depositBTC": { - "message": "Vložte BTC na níže uvedenou adresu:" + "message": "Vplačajte vaš BTC na spodnji naslov:" }, "depositCoin": { - "message": "Vložte $1 na níže uvedenou adresu", + "message": "Vplačajte vaš $1 na spodnji naslov", "description": "Tells the user what coin they have selected to deposit with shapeshift" }, "depositEth": { - "message": "Vložit Eth" + "message": "Vplačilo ETH" }, "depositEther": { - "message": "Vložit Ether" + "message": "Vplačilo ethra" }, "depositFiat": { - "message": "Vklad s fiat měnou" + "message": "Vplačilo s klasičnimi valutami" }, "depositFromAccount": { - "message": "Vložte z jiného účtu" + "message": "Vplačilo iz drugega računa" }, "depositShapeShift": { - "message": "Vklad přes ShapeShift" + "message": "Vplačilo z ShapeShift" }, "depositShapeShiftExplainer": { - "message": "Pokud vlastníte jiné kryptoměny, můžete je směnit Ether a vložit ho přímo do peněženky MetaMask. Bez založení účtu." + "message": "Če imate druge kriptovalute, lahko Ether vplačate neposredno v MetaMask. Brez računov." }, "details": { "message": "Podrobnosti" }, "directDeposit": { - "message": "Přímý vklad" + "message": "Neposredno vplačilo" }, "directDepositEther": { - "message": "Vložit Ether přímo" + "message": "Neposredno vplačilo ehera" }, "directDepositEtherExplainer": { - "message": "Pokud už vlastníte nějaký Ether, nejrychleji ho dostanete do peněženky přímým vkladem." + "message": "Če že imate Ether, ga lahko najhitreje dobite v MetaMask z neposrednim vplačilom." }, "done": { - "message": "Hotovo" + "message": "Končano" + }, + "downloadGoogleChrome": { + "message": "Prenesi Google Chrome" }, "downloadStateLogs": { - "message": "Stáhnout stavové protokoly" + "message": "Prenesi dnevnike state" + }, + "dontHaveAHardwareWallet": { + "message": "Nimate strojne denarnice?" }, "dropped": { - "message": "Zrušeno" + "message": "Izpusti" }, "edit": { - "message": "Upravit" + "message": "Uredi" }, "editAccountName": { - "message": "Upravit název účtu" + "message": "Uredi ime računa" + }, + "editingTransaction": { + "message": "Uredite transakcijo" }, "emailUs": { - "message": "Napište nám e-mail!" + "message": "Pišite nam!" }, "encryptNewDen": { - "message": "Zašifrujte svůj nový DEN" + "message": "Šifrirajte vaš DEN" + }, + "ensNameNotFound": { + "message": "Ime ENS ni najdeno" }, "enterPassword": { - "message": "Zadejte heslo" + "message": "Vnesite geslo" }, "enterPasswordConfirm": { - "message": "Zadejte heslo k potvrzení" + "message": "Potrdite geslo" }, - "passwordNotLongEnough": { - "message": "Heslo není dost dlouhé" + "enterPasswordContinue": { + "message": "Za nadaljevanje vnesite geslo" }, - "passwordsDontMatch": { - "message": "Hesla nejsou stejná" + "eth": { + "message": "ETH" }, "etherscanView": { - "message": "Prohlédněte si účet na Etherscan" + "message": "Poglej račun na Etherscan" }, "exchangeRate": { - "message": "Směnný kurz" + "message": "Menjalni tečaj" + }, + "expandView": { + "message": "Razširi pogled" }, "exportPrivateKey": { - "message": "Exportovat privátní klíč" + "message": "Izvozi zasebni ključ" }, "exportPrivateKeyWarning": { - "message": "Exportujte privátní klíč na vlastní riziko." + "message": "Izvoz zasebnega ključa na lastno odgovornost." }, "failed": { - "message": "Neúspěšné" + "message": "Ni uspelo" }, "fiat": { - "message": "FIAT", + "message": "Klasične", "description": "Exchange type" }, "fileImportFail": { - "message": "Import souboru nefunguje? Klikněte sem!", + "message": "Uvoz z datoteko ne deluje? Kliknite tukaj!", "description": "Helps user import their account from a JSON file" }, "followTwitter": { - "message": "Sledujte nás na Twitteru" + "message": "Sledite nam na Twitterju" + }, + "forgetDevice": { + "message": "Pozabi to napravo" }, "from": { "message": "Od" }, "fromToSame": { - "message": "Adresy odesílatele a příjemce nemohou být stejné" + "message": "Naslova pošiljatelja in prejemnika ne smeta biti enaka" }, "fromShapeShift": { - "message": "Z ShapeShift" + "message": "Od ShapeShift" + }, + "functionType": { + "message": "Vrsta funkcije" }, "gas": { - "message": "Palivo", + "message": "Gas", "description": "Short indication of gas cost" }, "gasFee": { - "message": "Poplatek za palivo" + "message": "Gas Fee" }, "gasLimit": { - "message": "Limit paliva" + "message": "Gas Limit" }, "gasLimitCalculation": { - "message": "Počítáme doporučený limit paliva na základě úspěšnosti v síti." + "message": "Priporočen gas limit je izračunan glede na omrežje." }, "gasLimitRequired": { - "message": "Limit paliva je povinný" + "message": "Gas limit je zahtevan" }, "gasLimitTooLow": { - "message": "Limit paliva musí být alespoň 21000" + "message": "Gas limit mora biti vsaj 21000" + }, + "gasUsed": { + "message": "Uporabljen gas" }, "generatingSeed": { - "message": "Generuji klíčovou frázi..." + "message": "Ustvarjenje seed ..." }, "gasPrice": { - "message": "Cena paliva (GWEI)" + "message": "Gas Price (GWEI)" }, "gasPriceCalculation": { - "message": "Počítáme doporučenou cenu paliva na základě úspěšnosti v síti." + "message": "Priporočen gas price je izračunan glede na omrežje." }, "gasPriceRequired": { - "message": "Cena paliva je povinná" + "message": "Gas price je zahtevan" + }, + "generatingTransaction": { + "message": "Ustvarjanje transakcije" }, "getEther": { - "message": "Získejte Ether" + "message": "Pridobi Ether" }, "getEtherFromFaucet": { - "message": "Získejte Ether z faucetu za $1.", + "message": "Pridobite Ether iz fauceta za $1", "description": "Displays network name for Ether faucet" }, + "getHelp": { + "message": "Get Help." + }, "greaterThanMin": { - "message": "musí být větší nebo roven $1.", + "message": "mora biti večji ali enak $1.", "description": "helper for inputting hex as decimal input" }, + "hardware": { + "message": "strojna" + }, + "hardwareWalletConnected": { + "message": "Strojna denarnica povezana" + }, + "hardwareWallets": { + "message": "Poveži strojno denarnico" + }, + "hardwareWalletsMsg": { + "message": "Izberite vrsto strojne denarnice" + }, + "havingTroubleConnecting": { + "message": "Imate težave?" + }, "here": { - "message": "zde", + "message": "tukaj", "description": "as in -click here- for more information (goes with troubleTokenBalances)" }, "hereList": { - "message": "Tady je seznam!!!!" + "message": "Tukaj je seznam!!!!" + }, + "hexData": { + "message": "Hex Data" }, "hide": { - "message": "Skrýt" + "message": "Skrij" }, "hideToken": { - "message": "Skrýt token" + "message": "Skrij žeton" }, "hideTokenPrompt": { - "message": "Skrýt token?" + "message": "Skrijem žeton?" + }, + "history": { + "message": "Zgodovina" }, "howToDeposit": { - "message": "Jakým způsobem chcete vložit Ether?" + "message": "Kako želite vplačati Ether?" }, "holdEther": { - "message": "Dovoluje vám držet ether a tokeny a slouží jako most k decentralizovaným aplikacím." + "message": "Omogoča vam shranjevanje ethra in žetonov ter povezovanje decentraliziranih aplikacij." }, "import": { - "message": "Import", + "message": "Uvoz", "description": "Button to import an account from a selected file" }, "importAccount": { - "message": "Import účtu" + "message": "Uvoz računa" }, "importAccountMsg": { - "message": "Importované účty nebudou spojeny s vaší původní MetaMaskovou klíčovou frází. Zjistěte více o importovaných účtech " + "message": " Uvoženi računa ne bodo povezani s prvotnim seed phase. Preberite več o uvoženih računih " }, "importAnAccount": { - "message": "Import účtu" + "message": "IUvozi račun" }, "importDen": { - "message": "Import existujícího DEN" + "message": "Uvozi DEN" }, "imported": { - "message": "Importováno", + "message": "Uvoženo", "description": "status showing that an account has been fully loaded into the keyring" }, + "importUsingSeed": { + "message": "Uvozi z seed phase" + }, + "info": { + "message": "Info" + }, "infoHelp": { - "message": "Informace a nápověda" + "message": "Info & Pomoč" + }, + "initialTransactionConfirmed": { + "message": "Vaša prvotna transakcija je bila potrjena. Pritisnite V redu in se vrnite nazaj." }, "insufficientFunds": { - "message": "Nedostatek finančních prostředků." + "message": "Nezadostna sredstva." }, "insufficientTokens": { - "message": "Nedostatek tokenů." + "message": "Nezadostni žetoni." }, "invalidAddress": { - "message": "Neplatná adresa" + "message": "Neveljaven naslov" }, "invalidAddressRecipient": { - "message": "Adresa příjemce je neplatná" + "message": "Neveljaven nasklov prejemnika" }, "invalidGasParams": { - "message": "Neplatná parametry paliva" + "message": "Neveljavne gas nastavitve" }, "invalidInput": { - "message": "Neplatný vstup." + "message": "Neveljaven vnos." }, "invalidRequest": { - "message": "Neplatný požadavek" + "message": "Neveljavna zahteva" }, "invalidRPC": { - "message": "Neplatné RPC URI" + "message": "Neveljaven RPC URL" + }, + "invalidSeedPhrase": { + "message": "Neveljavna seed phrase" }, "jsonFail": { - "message": "Něco se pokazilo. Prosím, ujistěte se, že váš JSON soubor má správný formát." + "message": "Nekaj je bilo narobe. Prepričajte se, da je datoteka JSON pravilno oblikovana." }, "jsonFile": { - "message": "JSON soubor", + "message": "Datoteka JSON", "description": "format for importing an account" }, "keepTrackTokens": { - "message": "Udržujte si záznamy o tokenech, které jste koupili s účtem v MetaMasku." + "message": "Sledite žetonom, ki ste jih pridobili z MetaMask." }, "kovan": { - "message": "Kovan Test Network" + "message": "Testno omrežje Kovan" }, "knowledgeDataBase": { - "message": "Navštivte naši Knowledge Base" + "message": "Obiščite našo pomoč" }, "max": { "message": "Max" }, "learnMore": { - "message": "Zjistěte více." + "message": "Preberite več" + }, + "ledgerAccountRestriction": { + "message": "Za dodajanje novega računa morate uporabiti zadnji račun." }, "lessThanMax": { - "message": "musí být menší nebo roven $1.", + "message": "mora biti manjši ali enak $1.", "description": "helper for inputting hex as decimal input" }, "likeToAddTokens": { - "message": "Chcete přidat tyto tokeny?" + "message": "Želite dodati te žetone?" }, "links": { - "message": "Odkazy" + "message": "Povezave" }, "limit": { - "message": "Limit" + "message": "Meja" }, "loading": { - "message": "Načítám..." + "message": "Nalaganje ..." }, "loadingTokens": { - "message": "Načítám tokeny..." + "message": "Nalaganje žetonov ..." }, "localhost": { "message": "Localhost 8545" }, "login": { - "message": "Přihlásit" + "message": "Prijava" }, "logout": { - "message": "Odhlásit" + "message": "Odjava" }, "loose": { - "message": "Nevázané" + "message": "Loose" }, "loweCaseWords": { - "message": "slova klíčové fráze mají pouze malá písmena" + "message": "seed words lahko vsebujejo samo male črke" }, "mainnet": { - "message": "Main Ethereum Network" + "message": "Glavno omrežje" + }, + "menu": { + "message": "Meni" }, "message": { - "message": "Zpráva" + "message": "Sporočilo" }, "metamaskDescription": { - "message": "MetaMask je bezpečný osobní trezor pro Ethereum." + "message": "MetaMask je varen identitetni sklad za Ethereum." + }, + "metamaskSeedWords": { + "message": "Seed Words" + }, + "metamaskVersion": { + "message": "Različica" }, "min": { - "message": "Minimum" + "message": "Najmanj" + }, + "missingYourTokens": { + "message": "Ne vidite vaših žetonov?" }, "myAccounts": { - "message": "Moje účty" + "message": "Moji računi" }, "mustSelectOne": { - "message": "Musíte zvolit aspoň 1 token." + "message": "Izbran mora biti vsaj 1 žeton." }, "needEtherInWallet": { - "message": "Potřebujete Ether v peněžence, abyste mohli pomocí MetaMasku interagovat s decentralizovanými aplikacemi." + "message": "Za interakcijo z decentraliziranimi aplikacijami boste v svoji denarnici potrebovali Eter." }, "needImportFile": { - "message": "Musíte zvolit soubor k importu.", + "message": "Za uvoz morate izbrati datoteko.", "description": "User is important an account and needs to add a file to continue" }, "needImportPassword": { - "message": "Musíte zadat heslo pro zvolený soubor.", + "message": "Za izbrano datoteko morate vnesti geslo.", "description": "Password and file needed to import an account" }, "negativeETH": { - "message": "Nelze odeslat zápornou částku ETH." + "message": "Negativnih zneskov ETH ni mogoče poslati." }, "networks": { - "message": "Sítě" + "message": "Omrežja" + }, + "nevermind": { + "message": "Pozabi" }, "newAccount": { - "message": "Nový účet" + "message": "Nov račun" }, "newAccountNumberName": { - "message": "Účet $1", + "message": "Račun $1", "description": "Default name of next account to be created on create account screen" }, "newContract": { - "message": "Nový kontrakt" + "message": "Nova pogodba" }, "newPassword": { - "message": "Nové heslo (min 8 znaků)" + "message": "Novo geslo (min 8 znakov)" + }, + "newPassword8Chars": { + "message": "Novo geslo (min 8 znakov)" }, "newRecipient": { - "message": "Nový příjemce" + "message": "Nov prejemnik" + }, + "newNetwork": { + "message": "Novo omrežje" + }, + "rpcURL": { + "message": "Nov RPC URL" }, - "newRPC": { - "message": "Nová RPC URL" + "showAdvancedOptions": { + "message": "Pokaži napredne možnosti" + }, + "hideAdvancedOptions": { + "message": "Skrij napredne možnosti" + }, + "optionalChainId": { + "message": "ChainID (nezahtevano)" + }, + "optionalSymbol": { + "message": "Simbol (nezahtevano)" + }, + "optionalNickname": { + "message": "Uporabniško ime (nezahtevano)" }, "next": { - "message": "Další" + "message": "Naprej" }, "noAddressForName": { - "message": "Pro toto jméno nebyla nastavena žádná adresa." + "message": "Za to ime ni naslovov." }, "noDeposits": { - "message": "Žádný vklad" + "message": "Prejetih ni nič vplačil" + }, + "noConversionRateAvailable": { + "message": "Menjalni tečaj ni na voljo" }, "noTransactionHistory": { - "message": "Žádná historie transakcí." + "message": "Ni zgodovine transakcij." }, "noTransactions": { - "message": "Žádné transakce" + "message": "Nimate transakcij" + }, + "notFound": { + "message": "Ni najdeno" }, "notStarted": { - "message": "Nezačalo" + "message": "Ni začeto" + }, + "noWebcamFoundTitle": { + "message": "Spletna kamera ni najdena" + }, + "noWebcamFound": { + "message": "Spletna kamera ni najdena. Poskusite znova kasneje." }, "oldUI": { - "message": "Staré rozhraní" + "message": "Star UI" }, "oldUIMessage": { - "message": "Vrátili jste se ke starému rozhraní. Můžete přepnout na nové rozhraní v nastavení v pravém horním menu." + "message": "Vrnili ste se v star uporabniški vmesnik. V novega se lahko vrnete z možnostjo v spustnem meniju v zgornjem desnem kotu." + }, + "onlySendToEtherAddress": { + "message": "Na Ethereum naslov pošljute samo ETH." + }, + "onlySendTokensToAccountAddress": { + "message": "Na Ethereum naslov pošljute samo $1.", + "description": "displays token symbol" + }, + "openInTab": { + "message": "Odpri v zavihku" }, "or": { - "message": "nebo", + "message": "ali", "description": "choice between creating or importing a new account" }, + "orderOneHere": { + "message": "Naročite Trezor ali Ledger i n zavarujte svoje premoženje s strojno denarnico" + }, + "origin": { + "message": "Izvor" + }, + "outgoing": { + "message": "Odhodni" + }, + "parameters": { + "message": "Parametri" + }, + "password": { + "message": "Geslo" + }, "passwordCorrect": { - "message": "Ujistěte se, že je vaše heslo správně." + "message": "Prepričajte se, da je geslo pravilno." + }, + "passwordsDontMatch": { + "message": "Gesli se ne ujemata" }, "passwordMismatch": { - "message": "hesla nesouhlasí", + "message": "gesli se ne ujemata", "description": "in password creation process, the two new password fields did not match" }, + "passwordNotLongEnough": { + "message": "Geslo ni dovolj dolgo" + }, "passwordShort": { - "message": "heslo je krátké", + "message": "geslo ni dovolj dolgo", "description": "in password creation process, the password is not long enough to be secure" }, "pastePrivateKey": { - "message": "Vložte zde svůj privátní klíč:", + "message": "Tukaj prilepite vaš zasebni ključ:", "description": "For importing an account from a private key" }, "pasteSeed": { - "message": "Svou klíčovou frázi vložte zde!" + "message": "Tukaj prilepite seed phase!" + }, + "pending": { + "message": "v obdelavi" }, "personalAddressDetected": { - "message": "Detekována osobní adresa. Zadejte adresu kontraktu tokenu." + "message": "Zaznan je osebni naslov. Vnesite naslov pogodbe žetona." }, "pleaseReviewTransaction": { - "message": "Zkontrolujte si transakci." + "message": "Preglejte vašo transakcijo." }, "popularTokens": { - "message": "Oblíbené tokeny" + "message": "Priljubljeni žetoni" + }, + "prev": { + "message": "Prej" + }, + "primaryCurrencySetting": { + "message": "Glavna valuta" + }, + "primaryCurrencySettingDescription": { + "message": "Izberite Native za prikaz vrednosti v privzeti valuti verige (npr. ETH). Izberite Klasične za prikaz vrednosti v izbrani klasični valuti." }, "privacyMsg": { - "message": "Zásady ochrany osobních údajů" + "message": "Zasebnost" }, "privateKey": { - "message": "Privátní klíč", + "message": "Zasebni lljuč", "description": "select this type of file to use to import an account" }, "privateKeyWarning": { - "message": "Upozornění: Nikdy nezveřejněte tento klíč. Kdokoli může s vaším privátním klíčem odcizit vaše aktiva z účtu." + "message": "Opozorilo: Nikoli ne razkrijte tega ključa. Kdorkoli lahko z njim ukrade vse vaše premoženje v računu." }, "privateNetwork": { - "message": "Soukromá síť" + "message": "Zasebno omrežje" }, "qrCode": { - "message": "Ukázat QR kód" + "message": "Prikaži QR kodo" + }, + "queue": { + "message": "Čakalna vrsta" }, "readdToken": { - "message": "Tento token můžete v budoucnu přidat zpět s „Přidat token“ v nastavení účtu." + "message": "Ta žeton lahko dodate tudi kasneje z uporabo gumba “Dodaj žeton” v možnostih vašega računa." }, "readMore": { - "message": "Přečtěte si více zde." + "message": "Tukaj preberite več." }, "readMore2": { - "message": "Přečtěte si více." + "message": "Preberite več." }, "receive": { - "message": "Obrdžet" + "message": "Prejmi" }, "recipientAddress": { - "message": "Adresa příjemce" + "message": "Prejemnikov naslov" }, "refundAddress": { - "message": "Adresa pro vrácení peněz" + "message": "Naslov za vračilo." + }, + "reject": { + "message": "Zavrni" + }, + "rejectAll": { + "message": "Zavrni vse" + }, + "rejectTxsN": { + "message": "Zavrni $1 transakcij" + }, + "rejectTxsDescription": { + "message": "Zavrnili boste $1 transakcij." }, "rejected": { - "message": "Odmítnuto" + "message": "Zavrnjeno" + }, + "reset": { + "message": "Ponastavi" }, "resetAccount": { - "message": "Resetovat účet" + "message": "Ponastavi račun" + }, + "resetAccountDescription": { + "message": "Ponastavljanje računa bo izbrisalo zgodovino transakcij." }, "restoreFromSeed": { - "message": "Obnovit z seed fráze" + "message": "Obnovim račun?" }, "restoreVault": { - "message": "Obnovit trezor" + "message": "Obnovi shrambo" + }, + "restoreAccountWithSeed": { + "message": "Obnovi račun z seed phrase" }, "required": { - "message": "Povinné" + "message": "Zahtevano" }, "retryWithMoreGas": { - "message": "Opakujte s vyšší cenou paliva" + "message": "Poskusite z večjim gas price" }, - "walletSeed": { - "message": "Klíčová fráze peněženky" + "restore": { + "message": "Obnovi" }, "revealSeedWords": { - "message": "Zobrazit slova klíčové fráze" + "message": "Razkrij seed words" + }, + "revealSeedWordsTitle": { + "message": "Seed Phrase" + }, + "revealSeedWordsDescription": { + "message": "Če želite zamenjati brskalnik ali računalnik, potrebujete vaš seed phase za dostop do računa. Shranite ga na varno skrito mesto." + }, + "revealSeedWordsWarningTitle": { + "message": "Tega ne delite z nikomer!" }, "revealSeedWordsWarning": { - "message": "Nebnovujte slova klíčové fráze na veřejnosti! Tato slova mohou být použita k odcizení veškerých vyašich účtů." + "message": "S temi besedami lahko kdorkoli ukrade vse vaše račune." }, "revert": { - "message": "Zvrátit" - }, - "rinkeby": { - "message": "Rinkeby Test Network" + "message": "Obnovi" }, - "ropsten": { - "message": "Ropsten Test Network" + "remove": { + "message": "izbriši" }, - "currentRpc": { - "message": "Současné RPC" + "removeAccount": { + "message": "Izbriši račun" }, - "connectingToMainnet": { - "message": "Připojuji se k Main Ethereum Network" + "removeAccountDescription": { + "message": "Ta račun bo izbrisan. Prepričajte se, da imate seed phase ali zasebni ključ tega računa, da ga boste lahko kasneje obnovili. " }, - "connectingToRopsten": { - "message": "Připojuji se k Ropsten Test Network" + "readyToConnect": { + "message": "Pripravljeni na povezovanje?" }, - "connectingToKovan": { - "message": "Připojuji se k Kovan Test Network" + "rinkeby": { + "message": "Testno omrežje Rinkeby" }, - "connectingToRinkeby": { - "message": "Připojuji se k Rinkeby Test Network" + "ropsten": { + "message": "Testno omrežje Ropsten" }, - "connectingToUnknown": { - "message": "Připojuji se k neznámé síti" + "rpc": { + "message": "RPC po meri" }, "sampleAccountName": { - "message": "Např. můj nový účet", + "message": "npr. Moj račun", "description": "Help user understand concept of adding a human-readable name to their account" }, "save": { - "message": "Uložit" - }, - "reprice_title": { - "message": "Změnit cenu transakce" + "message": "Shrani" }, - "reprice_subtitle": { - "message": "Navyšte cenu paliva ve snaze k přepsání a urychlení vyší transakce" + "saveAsCsvFile": { + "message": "Shrani kot CSV datoteko" }, "saveAsFile": { - "message": "Uložit do souboru", + "message": "Shrani kot datoteko", "description": "Account export process" }, "saveSeedAsFile": { - "message": "Uložit slova klíčové fráze do souboru" + "message": "Shrani seed words kot datoteko" + }, + "scanInstructions": { + "message": "Postavite QR kodo pred vašo kamero" + }, + "scanQrCode": { + "message": "Skeniraj QR kodo" }, "search": { - "message": "Hledat" + "message": "Iskanje" }, - "secretPhrase": { - "message": "Zadejte svých 12 slov tajné fráze k obnovení trezoru." + "searchResults": { + "message": "Rezultati iskanja" }, - "newPassword8Chars": { - "message": "Nové heslo (min 8 znaků)" + "secretPhrase": { + "message": "Vnesite vaših dvanajst besed za obnovitev vaših računov." }, "seedPhraseReq": { - "message": "klíčové fráze mají 12 slov" + "message": "Seed phrase mora biti dolg 12 besed" }, "select": { - "message": "Vybrat" + "message": "Izberi" }, "selectCurrency": { - "message": "Vybrat měnu" + "message": "Izberi valuto" + }, + "selectLocale": { + "message": "Izberi jezik" }, "selectService": { - "message": "Vybrat službu" + "message": "Izberi storitev" }, "selectType": { - "message": "Vybrat typ" + "message": "Izberi vrsto" }, "send": { - "message": "Odeslat" + "message": "Pošlji" }, "sendETH": { - "message": "Odeslat ETH" + "message": "Pošlji ETH" }, "sendTokens": { - "message": "Odeslat tokeny" + "message": "Pošlji žetone" }, - "onlySendToEtherAddress": { - "message": "Posílejte jen ETH na Ethereum adresu." + "sentEther": { + "message": "poslani ether" + }, + "sentTokens": { + "message": "poslani žetoni" + }, + "separateEachWord": { + "message": "Vsako besedo ločite z enim presledkom" }, "searchTokens": { - "message": "Hledat tokeny" + "message": "Iskanje žetonov" + }, + "selectAnAddress": { + "message": "Izberi naslov" + }, + "selectAnAccount": { + "message": "Izberi račun" + }, + "selectAnAccountHelp": { + "message": "Izberi račun za prikaz v MetaMask" + }, + "selectHdPath": { + "message": "Izberi HD Path" + }, + "selectPathHelp": { + "message": "Če obstoječih Ledger ne vidite, poskusite izbrati \"Legacy (MEW / MyCrypto)\"" }, "sendTokensAnywhere": { - "message": "Posílejte tokeny komukoli s Ethereum účtem" + "message": "Pošljite žetone komurkoli z Ethereum naslovom" }, "settings": { - "message": "Nastavení" - }, - "info": { - "message": "Informace" + "message": "Nastavitve" }, "shapeshiftBuy": { - "message": "Nakoupit na ShapeShift" + "message": "Kupi z Shapeshift" }, "showPrivateKeys": { - "message": "Zobrazit privátní klíče" + "message": "Pokaži zasebni ključ" }, "showQRCode": { - "message": "Zobrazit QR kód" + "message": "Pokaži QR kodo" + }, + "showHexData": { + "message": "Pokaži Hex Data" + }, + "showHexDataDescription": { + "message": "Izberite za prikaz hex podatkov na zaslonu za pošiljanje" }, "sign": { - "message": "Podepsat" + "message": "Podpiši" + }, + "signatureRequest": { + "message": "Zahteva za podpis" }, "signed": { - "message": "Podepsáno" + "message": "Podpisano" }, "signMessage": { - "message": "Podepsat zprávu" + "message": "Podpiši sporočilo" }, "signNotice": { - "message": "Podepsání zprávy může mít \nnebezpečný vedlejší učinek. Podepisujte zprávy pouze ze \nstránek, kterým plně důvěřujete celým svým účtem.\n Tato nebezpečná metoda bude odebrána v budoucí verzi. " + "message": "To podpisovanje lahko povzroči \nnevarne stranske učinke. Podpisujte samo sporočila \nstrani, ki jim zaupate s svojim celotnim računom.\n Ta nevarna funkcija bo odstranjena v prihodnji različici. " }, "sigRequest": { - "message": "Požadavek podpisu" + "message": "Zahteva za podpis" }, "sigRequested": { - "message": "Požádáno o podpis" + "message": "Podpis zahtevan" }, "spaceBetween": { - "message": "mezi slovy může být pouze mezera" + "message": "med besedami je lahko samo presledek" + }, + "speedUp": { + "message": "pospeši" + }, + "speedUpTitle": { + "message": "Pospeši transakcijo" + }, + "speedUpSubtitle": { + "message": "Povečajte gas prise za pospešitev transakcije" }, "status": { - "message": "Stav" + "message": "Status" }, "stateLogs": { - "message": "Stavové protokoly" + "message": "State dnevniki" }, "stateLogsDescription": { - "message": "Stavové protokoly obsahují vaše veřejné adresy účtů a odeslané transakce." + "message": "State vsebujejo vaš javni nasklov in zgodovino transakcij." }, "stateLogError": { - "message": "Chyba během získávání stavových protokolů." + "message": "Napaka pri pridobivanju state dnevnikov." + }, + "step1HardwareWallet": { + "message": "1. Povežite strojno denarnico" + }, + "step1HardwareWalletMsg": { + "message": "Z računalnikom povežite strojno denarnico." + }, + "step2HardwareWallet": { + "message": "2. Izberite račun" + }, + "step2HardwareWalletMsg": { + "message": "Izberite račun, ki ga želute uporabiti. Trenutno lahko izberete le en račun na enkrat." + }, + "step3HardwareWallet": { + "message": "3. Začnite uporabljati dApps in več!" + }, + "step3HardwareWalletMsg": { + "message": "Uporabite strojno denarnico kot katerikoli drug Ethereum račun. Prijavite se v dApps, pošljite Ether in ERC20 žetone in žetone kot CryptoKitties." }, "submit": { - "message": "Odeslat" + "message": "Potrdi" }, "submitted": { - "message": "Odesláno" + "message": "Potrjeno" }, "supportCenter": { - "message": "Navštivte naše centrum podpory" + "message": "Obiščite naše središče za podporo" }, "symbolBetweenZeroTen": { - "message": "Symbol musí být mezi 0 a 10 znaky." + "message": "Simbol mora imeti med 0 in 10 znakov." }, "takesTooLong": { - "message": "Trvá to dlouho?" + "message": "Trava predolgo?" }, "terms": { - "message": "Podmínky použití" + "message": "Pogoji uporabe" }, "testFaucet": { - "message": "Testovací faucet" + "message": "Testni faucet" }, "to": { - "message": "Komu" + "message": "Za" }, "toETHviaShapeShift": { - "message": "$1 na ETH přes ShapeShift", + "message": "$1 v ETH prek ShapeShift", "description": "system will fill in deposit type in start of message" }, + "token": { + "message": "Žeton" + }, "tokenAddress": { - "message": "Adresa tokenu" + "message": "Naslov žetona" }, "tokenAlreadyAdded": { - "message": "Token byl už přidán." + "message": "Žeton je bil že dodan." }, "tokenBalance": { - "message": "Váš zůstatek tokenu je:" + "message": "Vaš znesek žetonov je:" }, "tokenSelection": { - "message": "Vyhledejte token nebo je vyberte z našeho seznamu oblíbených tokenů." + "message": "Iščite žetone ali pa jih izberite iz seznama priljubljenih." }, "tokenSymbol": { - "message": "Symbol tokenu" + "message": "Simbol žetona" }, "tokenWarning1": { - "message": "Mějte přehled o tokenech, které jste koupili s účtem MetaMasku. Pokud jste koupili tokeny s jiným účtem, tyto tokeny se zde nezobrazí." + "message": "Sledite žetonom, ki ste jih kupili z MetaMask metamask računom. Če ste jih kupili drugje, ne bodo prikazani tukaj." }, "total": { - "message": "Celkem" + "message": "Skupno" + }, + "transaction": { + "message": "transakcija" + }, + "transactionConfirmed": { + "message": "Transakcija potrjena na $2." + }, + "transactionCreated": { + "message": "Transakcija z vrednostjo $1 ustvarjena na $2." + }, + "transactionWithNonce": { + "message": "Transakcija $1" + }, + "transactionDropped": { + "message": "Transakcija na $2 preklicana." + }, + "transactionSubmitted": { + "message": "Transakcija na $2 oddana." + }, + "transactionUpdated": { + "message": "Transakcija na $2 spremenjena." + }, + "transactionUpdatedGas": { + "message": "Transakcija spremenjena z gas price $1 na $2." + }, + "transactionErrored": { + "message": "Napaka pri transakciji." }, "transactions": { - "message": "transakce" + "message": "transakcije" }, "transactionError": { - "message": "Chyba transakce. Vyhozena výjimka v kódu kontraktu." + "message": "Napaka pri transakciji. Izjema sprožena v kodi pogodbe." }, "transactionMemo": { - "message": "Poznámka transakce (nepovinné)" + "message": "Opomba transakcije (nezahtevano)" }, "transactionNumber": { - "message": "Číslo transakce" + "message": "Številka transakcije" + }, + "transfer": { + "message": "Prenesi" + }, + "transferFrom": { + "message": "Prenesi od" }, "transfers": { - "message": "Převody" + "message": "Prenosi" + }, + "trezorHardwareWallet": { + "message": "Strojna denarnica TREZOR" }, "troubleTokenBalances": { - "message": "Měli jsme problém s načtením vašich tokenových zůstatků. Můžete je vidět ", + "message": "Če imate težave pri ogledu zneskov žetonov si jih lahko ogledate ", "description": "Followed by a link (here) to view token balances" }, + "tryAgain": { + "message": "Poskusi znova" + }, "twelveWords": { - "message": "Těchto 12 slov je jedinou možností, jak obnovit MetaMask účet. \nUložte je na bezpečné a neveřejné místo." + "message": "Edini način za obnovitev MetaMask računa, je teh 12 besed.\nShranite jih na varno in skrivno mesto." }, "typePassword": { - "message": "Zadejte své heslo" + "message": "Vnesite vaše MetaMask geslo" }, "uiWelcome": { - "message": "Vítejte v novém rozhraní (Beta)" + "message": "Dobrodošli v nov UI (Beta)" }, "uiWelcomeMessage": { - "message": "Používáte nyní nové rozhraní MetaMasku. Rozhlédněte se kolem, vyzkoušejte nové funkce, jako jsou zasílání tokenů, a dejte nám vědět, pokud narazíte na problém." + "message": "Uporabljate nov uporabniški vmesnik." }, "unapproved": { - "message": "Neschváleno" + "message": "Neodobreno" }, "unavailable": { - "message": "Nedostupné" + "message": "Ni na voljo" + }, + "units": { + "message": "enote" }, "unknown": { - "message": "Neznámé" + "message": "Neznano" + }, + "unknownFunction": { + "message": "Neznana funkcija" }, "unknownNetwork": { - "message": "Neznámá soukromá síť" + "message": "Neznano zasebno omrežje" }, "unknownNetworkId": { - "message": "Neznámé ID sítě" + "message": "Neznan ID omrežja" + }, + "unknownQrCode": { + "message": "Napaka: Te QR kode ni bilo mogoče prepoznati" + }, + "unknownCameraErrorTitle": { + "message": "Ooops! Nekaj je šlo narobe ...." + }, + "unknownCameraError": { + "message": "Pri dostopanju do vaše kamere je prišlo do napake. Poskusite znova kasneje ..." + }, + "unlock": { + "message": "Odkleni" + }, + "unlockMessage": { + "message": "Decentralizirana spletna denarnica" + }, + "updatedWithDate": { + "message": "Posodobljeno $1" }, "uriErrorMsg": { - "message": "URI vyžadují korektní HTTP/HTTPS prefix." + "message": "URI zahtevajo ustrezno HTTP/HTTPS predpono." }, "usaOnly": { - "message": "jen v USA", + "message": "Samo za ZDA", "description": "Using this exchange is limited to people inside the USA" }, "usedByClients": { - "message": "Používána různými klienty" + "message": "Uporabljen s strani večih različnih odjemalcev" }, "useOldUI": { - "message": "Použijte staré rozhraní" + "message": "Uporabi star UI" }, "validFileImport": { - "message": "Musíte vybrat validní soubor k importu." + "message": "Za uvoz morate izbrati pravilno datoteko." }, "vaultCreated": { - "message": "Trezor vytvořen" + "message": "Račun je ustvarjen" }, "viewAccount": { - "message": "Zobrazit účet" + "message": "Poglej račun" + }, + "viewOnEtherscan": { + "message": "Poglej na Etherscan" }, "visitWebSite": { - "message": "Navštivte naši stránku" + "message": "Obiščite našo spletno stran" + }, + "walletSeed": { + "message": "Wallet Seed" }, "warning": { - "message": "Varování" + "message": "Opozorilo" + }, + "welcomeBack": { + "message": "Dobrodošli nazaj!" }, "welcomeBeta": { - "message": "Vítejte v MetaMask Beta" + "message": "Dobrodošli v MetaMask Beta" }, "whatsThis": { - "message": "Co to je?" + "message": "Kaj je to?" + }, + "yesLetsTry": { + "message": "Pa poskusimo" + }, + "youNeedToAllowCameraAccess": { + "message": "Za uporabo te funkcije boste potrebovali dostop do kamere." }, "yourSigRequested": { - "message": "Je vyžadován váš podpis" + "message": "Zahtevan je bil vaš podpis" }, "youSign": { - "message": "Podepisujete" + "message": "Podpisali boste" + }, + "yourPrivateSeedPhrase": { + "message": "Vaš zasebni seed phrase" } -} \ No newline at end of file +} -- cgit From 7ce2cf4572f80b71d5ab4d4c479a49bcca9ccdf1 Mon Sep 17 00:00:00 2001 From: PaddyMc Date: Tue, 13 Nov 2018 17:19:12 +0000 Subject: Fixes #3425: Better support for batch transactions (#5437) --- app/_locales/en/messages.json | 6 ++++++ app/images/double-arrow.svg | 13 +++++++++++++ app/images/single-arrow.svg | 10 ++++++++++ app/scripts/background.js | 1 + 4 files changed, 30 insertions(+) create mode 100644 app/images/double-arrow.svg create mode 100644 app/images/single-arrow.svg (limited to 'app') diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 95c9efeeb..7a70937a3 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -785,6 +785,9 @@ "noWebcamFound": { "message": "Your computer's webcam was not found. Please try again." }, + "ofTextNofM": { + "message": "of" + }, "oldUI": { "message": "Old UI" }, @@ -932,6 +935,9 @@ "restoreAccountWithSeed": { "message": "Restore your Account with Seed Phrase" }, + "requestsAwaitingAcknowledgement": { + "message": "requests waiting to be acknowledged" + }, "required": { "message": "Required" }, diff --git a/app/images/double-arrow.svg b/app/images/double-arrow.svg new file mode 100644 index 000000000..a31a0550b --- /dev/null +++ b/app/images/double-arrow.svg @@ -0,0 +1,13 @@ + + + + first/last + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/app/images/single-arrow.svg b/app/images/single-arrow.svg new file mode 100644 index 000000000..399da72d6 --- /dev/null +++ b/app/images/single-arrow.svg @@ -0,0 +1,10 @@ + + + + previous/next + Created with Sketch. + + + + + \ No newline at end of file diff --git a/app/scripts/background.js b/app/scripts/background.js index 078e84928..a6fc5ed78 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -440,6 +440,7 @@ function triggerUi () { const currentlyActiveMetamaskTab = Boolean(tabs.find(tab => openMetamaskTabsIDs[tab.id])) if (!popupIsOpen && !currentlyActiveMetamaskTab && !notificationIsOpen) { notificationManager.showPopup() + notificationIsOpen = true } }) } -- cgit From 0549782595335e8257d1b4abf7d6220020e2c8db Mon Sep 17 00:00:00 2001 From: Paul Bouchon Date: Tue, 13 Nov 2018 14:57:43 -0500 Subject: Update Balanc3 API (#5744) * Update balanc3 API used in TokenRatesController * Remove demo URL and use nativeCurrency when fetching token rates --- app/scripts/controllers/token-rates.js | 38 ++++++++++++++-------------------- app/scripts/metamask-controller.js | 1 + 2 files changed, 16 insertions(+), 23 deletions(-) (limited to 'app') diff --git a/app/scripts/controllers/token-rates.js b/app/scripts/controllers/token-rates.js index b6f084841..a8936f13b 100644 --- a/app/scripts/controllers/token-rates.js +++ b/app/scripts/controllers/token-rates.js @@ -14,8 +14,9 @@ class TokenRatesController { * * @param {Object} [config] - Options to configure controller */ - constructor ({ interval = DEFAULT_INTERVAL, preferences } = {}) { + constructor ({ interval = DEFAULT_INTERVAL, currency, preferences } = {}) { this.store = new ObservableStore() + this.currency = currency this.preferences = preferences this.interval = interval } @@ -26,32 +27,23 @@ class TokenRatesController { async updateExchangeRates () { if (!this.isActive) { return } const contractExchangeRates = {} - // copy array to ensure its not modified during iteration - const tokens = this._tokens.slice() - for (const token of tokens) { - if (!token) return log.error(`TokenRatesController - invalid tokens state:\n${JSON.stringify(tokens, null, 2)}`) - const address = token.address - contractExchangeRates[address] = await this.fetchExchangeRate(address) + const nativeCurrency = this.currency ? this.currency.getState().nativeCurrency.toUpperCase() : 'ETH' + const pairs = this._tokens.map(token => `pairs[]=${token.address}/${nativeCurrency}`) + const query = pairs.join('&') + if (this._tokens.length > 0) { + try { + const response = await fetch(`https://exchanges.balanc3.net/pie?${query}&autoConversion=true`) + const { prices = [] } = await response.json() + prices.forEach(({ pair, price }) => { + contractExchangeRates[pair.split('/')[0]] = typeof price === 'number' ? price : 0 + }) + } catch (error) { + log.warn(`MetaMask - TokenRatesController exchange rate fetch failed.`, error) + } } this.store.putState({ contractExchangeRates }) } - /** - * Fetches a token exchange rate by address - * - * @param {String} address - Token contract address - */ - async fetchExchangeRate (address) { - try { - const response = await fetch(`https://metamask.balanc3.net/prices?from=${address}&to=ETH&autoConversion=false&summaryOnly=true`) - const json = await response.json() - return json && json.length ? json[0].averagePrice : 0 - } catch (error) { - log.warn(`MetaMask - TokenRatesController exchange rate fetch failed for ${address}.`, error) - return 0 - } - } - /** * @type {Number} */ diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 5ae0f608d..641a7ef3f 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -117,6 +117,7 @@ module.exports = class MetamaskController extends EventEmitter { // token exchange rate tracker this.tokenRatesController = new TokenRatesController({ + currency: this.currencyController.store, preferences: this.preferencesController.store, }) -- cgit