aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/_locales/en/messages.json210
-rw-r--r--app/_locales/fr/messages.json609
-rw-r--r--app/_locales/ko/messages.json609
-rw-r--r--app/_locales/vi/messages.json609
-rw-r--r--app/images/arrow-right.svg16
-rw-r--r--app/images/deposit-eth.svg32
-rw-r--r--app/scripts/contentscript.js17
-rw-r--r--app/scripts/lib/local-store.js32
8 files changed, 2124 insertions, 10 deletions
diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json
index 1ca31427d..35a360c84 100644
--- a/app/_locales/en/messages.json
+++ b/app/_locales/en/messages.json
@@ -14,9 +14,15 @@
"address": {
"message": "Address"
},
+ "addCustomToken": {
+ "message": "Add custom token"
+ },
"addToken": {
"message": "Add Token"
},
+ "addTokens": {
+ "message": "Add Tokens"
+ },
"amount": {
"message": "Amount"
},
@@ -34,6 +40,9 @@
"attemptingConnect": {
"message": "Attempting to connect to blockchain."
},
+ "attributions": {
+ "message": "Attributions"
+ },
"available": {
"message": "Available"
},
@@ -43,6 +52,9 @@
"balance": {
"message": "Balance:"
},
+ "balances": {
+ "message": "Your balances"
+ },
"balanceIsInsufficientGas": {
"message": "Insufficient balance for current gas total"
},
@@ -53,9 +65,15 @@
"message": "must be greater than or equal to $1 and less than or equal to $2.",
"description": "helper for inputting hex as decimal input"
},
+ "blockiesIdenticon": {
+ "message": "Use Blockies Identicon"
+ },
"borrowDharma": {
"message": "Borrow With Dharma (Beta)"
},
+ "builtInCalifornia": {
+ "message": "MetaMask is designed and built in California."
+ },
"buy": {
"message": "Buy"
},
@@ -68,6 +86,9 @@
"cancel": {
"message": "Cancel"
},
+ "classicInterface": {
+ "message": "Use classic interface"
+ },
"clickCopy": {
"message": "Click to Copy"
},
@@ -83,6 +104,9 @@
"confirmTransaction": {
"message": "Confirm Transaction"
},
+ "continue": {
+ "message": "Continue"
+ },
"continueToCoinbase": {
"message": "Continue to Coinbase"
},
@@ -101,6 +125,9 @@
"copiedExclamation": {
"message": "Copied!"
},
+ "copiedSafe": {
+ "message": "I've copied it somewhere safe"
+ },
"copy": {
"message": "Copy"
},
@@ -126,6 +153,12 @@
"message": "Crypto",
"description": "Exchange type (cryptocurrencies)"
},
+ "currentConversion": {
+ "message": "Current Conversion"
+ },
+ "currentNetwork": {
+ "message": "Current Network"
+ },
"customGas": {
"message": "Customize Gas"
},
@@ -135,6 +168,12 @@
"customRPC": {
"message": "Custom RPC"
},
+ "decimalsMustZerotoTen": {
+ "message": "Decimals must be at least 0, and not over 36."
+ },
+ "decimal": {
+ "message": "Decimals of Precision"
+ },
"defaultNetwork": {
"message": "The default network for Ether transactions is Main Net."
},
@@ -184,18 +223,27 @@
"done": {
"message": "Done"
},
+ "downloadStatelogs": {
+ "message": "Download State Logs"
+ },
"edit": {
"message": "Edit"
},
"editAccountName": {
"message": "Edit Account Name"
},
+ "emailUs": {
+ "message": "Email us!"
+ },
"encryptNewDen": {
"message": "Encrypt your new DEN"
},
"enterPassword": {
"message": "Enter password"
},
+ "enterPasswordConfirm": {
+ "message": "Enter your password to confirm"
+ },
"etherscanView": {
"message": "View account on Etherscan"
},
@@ -219,9 +267,15 @@
"message": "File import not working? Click here!",
"description": "Helps user import their account from a JSON file"
},
+ "followTwitter": {
+ "message": "Follow us on Twitter"
+ },
"from": {
"message": "From"
},
+ "fromToSame": {
+ "message": "From and To address cannot be the same"
+ },
"fromShapeShift": {
"message": "From ShapeShift"
},
@@ -244,6 +298,9 @@
"gasLimitTooLow": {
"message": "Gas limit must be at least 21000"
},
+ "generatingSeed": {
+ "message": "Generating Seed..."
+ },
"gasPrice": {
"message": "Gas Price (GWEI)"
},
@@ -268,6 +325,9 @@
"message": "here",
"description": "as in -click here- for more information (goes with troubleTokenBalances)"
},
+ "hereList": {
+ "message": "Here's a list!!!!"
+ },
"hide": {
"message": "Hide"
},
@@ -280,6 +340,9 @@
"howToDeposit": {
"message": "How would you like to deposit Ether?"
},
+ "holdEther": {
+ "message": "It allows you to hold ether & tokens, and serves as your bridge to decentralized applications."
+ },
"import": {
"message": "Import",
"description": "Button to import an account from a selected file"
@@ -287,6 +350,9 @@
"importAccount": {
"message": "Import Account"
},
+ "importAccountMsg": {
+ "message":" Imported accounts will not be associated with your originally created MetaMask account seedphrase. Learn more about imported accounts "
+ },
"importAnAccount": {
"message": "Import an account"
},
@@ -300,9 +366,18 @@
"infoHelp": {
"message": "Info & Help"
},
+ "insufficientFunds": {
+ "message": "Insufficient funds."
+ },
+ "insufficientTokens": {
+ "message": "Insufficient tokens."
+ },
"invalidAddress": {
"message": "Invalid address"
},
+ "invalidAddressRecipient": {
+ "message": "Recipient address is invalid"
+ },
"invalidGasParams": {
"message": "Invalid Gas Parameters"
},
@@ -312,6 +387,12 @@
"invalidRequest": {
"message": "Invalid Request"
},
+ "invalidRPC": {
+ "message": "Invalid RPC URI"
+ },
+ "jsonFail": {
+ "message": "Something went wrong. Please make sure your JSON file is properly formatted."
+ },
"jsonFile": {
"message": "JSON File",
"description": "format for importing an account"
@@ -319,10 +400,16 @@
"kovan": {
"message": "Kovan Test Network"
},
+ "knowledgeDataBase": {
+ "message": "Visit our Knowledge Base"
+ },
"lessThanMax": {
"message": "must be less than or equal to $1.",
"description": "helper for inputting hex as decimal input"
},
+ "likeToAddTokens": {
+ "message": "Would you like to add these tokens?"
+ },
"limit": {
"message": "Limit"
},
@@ -335,24 +422,36 @@
"localhost": {
"message": "Localhost 8545"
},
+ "login": {
+ "message": "Log In"
+ },
"logout": {
"message": "Log out"
},
"loose": {
"message": "Loose"
},
+ "loweCaseWords": {
+ "message": "seed words only have lowercase characters"
+ },
"mainnet": {
"message": "Main Ethereum Network"
},
"message": {
"message": "Message"
},
+ "metamaskDescription": {
+ "message": "MetaMask is a secure identity vault for Ethereum."
+ },
"min": {
"message": "Minimum"
},
"myAccounts": {
"message": "My Accounts"
},
+ "mustSelectOne": {
+ "message": "Must select at least 1 token."
+ },
"needEtherInWallet": {
"message": "To interact with decentralized applications using MetaMask, you’ll need Ether in your wallet."
},
@@ -364,6 +463,9 @@
"message": "You must enter a password for the selected file.",
"description": "Password and file needed to import an account"
},
+ "negativeETH": {
+ "message": "Can not send negative amounts of ETH."
+ },
"networks": {
"message": "Networks"
},
@@ -383,6 +485,9 @@
"newRecipient": {
"message": "New Recipient"
},
+ "newRPC": {
+ "message": "New RPC URL"
+ },
"next": {
"message": "Next"
},
@@ -411,6 +516,9 @@
"message": "or",
"description": "choice between creating or importing a new account"
},
+ "passwordCorrect": {
+ "message": "Please make sure your password is correct."
+ },
"passwordMismatch": {
"message": "passwords don't match",
"description": "in password creation process, the two new password fields did not match"
@@ -426,9 +534,15 @@
"pasteSeed": {
"message": "Paste your seed phrase here!"
},
+ "personalAddressDetected": {
+ "message": "Personal address detected. Input the token contract address."
+ },
"pleaseReviewTransaction": {
"message": "Please review your transaction."
},
+ "privacyMsg": {
+ "message": "Privacy Policy"
+ },
"privateKey": {
"message": "Private Key",
"description": "select this type of file to use to import an account"
@@ -448,6 +562,9 @@
"readMore": {
"message": "Read more here."
},
+ "readMore2": {
+ "message": "Read more."
+ },
"receive": {
"message": "Receive"
},
@@ -460,12 +577,24 @@
"rejected": {
"message": "Rejected"
},
+ "resetAccount": {
+ "message": "Reset Account"
+ },
+ "restoreFromSeed": {
+ "message": "Restore from seed phrase"
+ },
"required": {
"message": "Required"
},
"retryWithMoreGas": {
"message": "Retry with a higher gas price here"
},
+ "revealSeedWords": {
+ "message": "Reveal Seed Words"
+ },
+ "revealSeedWordsWarning": {
+ "message": "Do not recover your seed words in a public place! These words can be used to steal all your accounts."
+ },
"revert": {
"message": "Revert"
},
@@ -486,12 +615,36 @@
"message": "Save as File",
"description": "Account export process"
},
+ "saveSeedAsFile": {
+ "message": "Save Seed Words As File"
+ },
+ "search": {
+ "message": "Search"
+ },
+ "secretPhrase": {
+ "message": "Enter your secret twelve word phrase here to restore your vault."
+ },
+ "seedPhraseReq": {
+ "message": "seed phrases are 12 words long"
+ },
+ "select": {
+ "message": "Select"
+ },
+ "selectCurrency": {
+ "message": "Select Currency"
+ },
"selectService": {
"message": "Select Service"
},
+ "selectType": {
+ "message": "Select Type"
+ },
"send": {
"message": "Send"
},
+ "sendETH": {
+ "message": "Send ETH"
+ },
"sendTokens": {
"message": "Send Tokens"
},
@@ -525,15 +678,33 @@
"sigRequested": {
"message": "Signature Requested"
},
+ "spaceBetween": {
+ "message": "there can only be a space between words"
+ },
"status": {
"message": "Status"
},
+ "stateLogs": {
+ "message": "State Logs"
+ },
+ "stateLogsDescription": {
+ "message": "State logs contain your public account addresses and sent transactions."
+ },
"submit": {
"message": "Submit"
},
+ "supportCenter": {
+ "message": "Visit our Support Center"
+ },
+ "symbolBetweenZeroTen": {
+ "message": "Symbol must be between 0 and 10 characters."
+ },
"takesTooLong": {
"message": "Taking too long?"
},
+ "terms": {
+ "message": "Terms of Use"
+ },
"testFaucet": {
"message": "Test Faucet"
},
@@ -544,12 +715,30 @@
"message": "$1 to ETH via ShapeShift",
"description": "system will fill in deposit type in start of message"
},
+ "tokenAddress": {
+ "message": "Token Address"
+ },
+ "tokenAlreadyAdded": {
+ "message": "Token has already been added."
+ },
"tokenBalance": {
"message": "Your Token Balance is:"
},
+ "tokenSelection": {
+ "message": "Search for tokens or select from our list of popular tokens."
+ },
+ "tokenSymbol": {
+ "message": "Token Symbol"
+ },
+ "tokenWarning1": {
+ "message": "Keep track of the tokens you’ve bought with your MetaMask account. If you bought tokens using a different account, those tokens will not appear here."
+ },
"total": {
"message": "Total"
},
+ "transactions": {
+ "message": "transactions"
+ },
"transactionMemo": {
"message": "Transaction memo (optional)"
},
@@ -563,6 +752,9 @@
"message": "We had trouble loading your token balances. You can view them ",
"description": "Followed by a link (here) to view token balances"
},
+ "twelveWords": {
+ "message": "These 12 words are the only way to restore your MetaMask accounts.\nSave them somewhere safe and secret."
+ },
"typePassword": {
"message": "Type Your Password"
},
@@ -584,6 +776,9 @@
"unknownNetworkId": {
"message": "Unknown network ID"
},
+ "uriErrorMsg": {
+ "message": "URIs require the appropriate HTTP/HTTPS prefix."
+ },
"usaOnly": {
"message": "USA only",
"description": "Using this exchange is limited to people inside the USA"
@@ -591,12 +786,27 @@
"usedByClients": {
"message": "Used by a variety of different clients"
},
+ "useOldUI": {
+ "message": "Use old UI"
+ },
+ "validFileImport": {
+ "message": "You must select a valid file to import."
+ },
+ "vaultCreated": {
+ "message": "Vault Created"
+ },
"viewAccount": {
"message": "View Account"
},
+ "visitWebSite": {
+ "message": "Visit our web site"
+ },
"warning": {
"message": "Warning"
},
+ "welcomeBeta": {
+ "message": "Welcome to MetaMask Beta"
+ },
"whatsThis": {
"message": "What's this?"
},
diff --git a/app/_locales/fr/messages.json b/app/_locales/fr/messages.json
new file mode 100644
index 000000000..da2cfe4f8
--- /dev/null
+++ b/app/_locales/fr/messages.json
@@ -0,0 +1,609 @@
+{
+ "accept": {
+ "message": "Accepter"
+ },
+ "account": {
+ "message": "Compte"
+ },
+ "accountDetails": {
+ "message": "Détails du compte"
+ },
+ "accountName": {
+ "message": "Nom du compte"
+ },
+ "address": {
+ "message": "Adresse"
+ },
+ "addToken": {
+ "message": "Ajouter un jeton"
+ },
+ "amount": {
+ "message": "Montant"
+ },
+ "amountPlusGas": {
+ "message": "Montant + Gaz"
+ },
+ "appDescription": {
+ "message": "Extension Ethereum pour navigateur",
+ "description": "La description de l'application"
+ },
+ "appName": {
+ "message": "MetaMask",
+ "description": "Le nom de l'application"
+ },
+ "attemptingConnect": {
+ "message": "Tentative de connexion à blockchain."
+ },
+ "available": {
+ "message": "Disponible"
+ },
+ "back": {
+ "message": "Retour"
+ },
+ "balance": {
+ "message": "Balance:"
+ },
+ "balanceIsInsufficientGas": {
+ "message": "Solde insuffisant pour le total actuel de gaz"
+ },
+ "beta": {
+ "message": "BETA"
+ },
+ "betweenMinAndMax": {
+ "message": "doit être supérieur ou égal à $1 et inférieur ou égal à $2",
+ "description": "helper pour la saisie hexadécimale en entrée décimale"
+ },
+ "borrowDharma": {
+ "message": "Emprunter avec Dharma (Bêta)"
+ },
+ "buy": {
+ "message": "Acheter"
+ },
+ "buyCoinbase": {
+ "message": "Acheter sur Coinbase"
+ },
+ "buyCoinbaseExplainer": {
+ "message": "Coinbase est le moyen le plus populaire au monde d'acheter et de vendre du bitcoin, de l'ethereum et du litecoin."
+ },
+ "cancel": {
+ "message": "Annuler"
+ },
+ "clickCopy": {
+ "message": "Cliquer pour copier"
+ },
+ "confirm": {
+ "message": "Confirmer"
+ },
+ "confirmContract": {
+ "message": "Confirmer le contrat"
+ },
+ "confirmPassword": {
+ "message": "Confirmer le mot de passe"
+ },
+ "confirmTransaction": {
+ "message": "Confirmer la transaction"
+ },
+ "continueToCoinbase": {
+ "message": "Continuer vers Coinbase"
+ },
+ "contractDeployment": {
+ "message": "Déploiement de contrat"
+ },
+ "conversionProgress": {
+ "message": "Conversion en cours"
+ },
+ "copiedButton": {
+ "message": "Copié"
+ },
+ "copiedClipboard": {
+ "message": "Copié dans le Presse-papiers"
+ },
+ "copiedExclamation": {
+ "message": "Copié!"
+ },
+ "copy": {
+ "message": "Copier"
+ },
+ "copyToClipboard": {
+ "message": "Copier dans le presse-papier"
+ },
+ "copyButton": {
+ "message": " Copier "
+ },
+ "copyPrivateKey": {
+ "message": "Ceci est votre clé privée (cliquez pour copier)"
+ },
+ "create": {
+ "message": "Créer"
+ },
+ "createAccount": {
+ "message": "Créer un compte"
+ },
+ "createDen": {
+ "message": "Créer"
+ },
+ "crypto": {
+ "message": "Crypto",
+ "description": "Type d'échange (cryptocurrencies)"
+ },
+ "customGas": {
+ "message": "Personnaliser le Gaz"
+ },
+ "customize": {
+ "message": "Personnaliser"
+ },
+ "customRPC": {
+ "message": "RPC personnalisé"
+ },
+ "defaultNetwork": {
+ "message": "Le réseau par défaut pour les transactions Ether est Main Net."
+ },
+ "denExplainer": {
+ "message": "Votre DEN est votre stockage crypté par mot de passe dans MetaMask."
+ },
+ "deposit": {
+ "message": "Dépôt"
+ },
+ "depositBTC": {
+ "message": "Déposez vos BTC à l'adresse ci-dessous:"
+ },
+ "depositCoin": {
+ "message": "Déposez votre $1 à l'adresse ci-dessous",
+ "description": "Indique à l'utilisateur quelle monnaie il a choisi de déposer avec shapeshift"
+ },
+ "depositEth": {
+ "message": "Dépôt Eth"
+ },
+ "depositEther": {
+ "message": "Dépôt Ether"
+ },
+ "depositFiat": {
+ "message": "Dépôt de monnaie-fiat"
+ },
+ "depositFromAccount": {
+ "message": "Dépôt d'un autre compte"
+ },
+ "depositShapeShift": {
+ "message": "Déposez avec ShapeShift"
+ },
+ "depositShapeShiftExplainer": {
+ "message": "Si vous possédez d'autres crypto-monnaies, vous pouvez échanger et déposer de l'Ether directement dans votre portefeuille MetaMask. Aucun compte n'est requis."
+ },
+ "details": {
+ "message": "Détails"
+ },
+ "directDeposit": {
+ "message": "Dépôt direct"
+ },
+ "directDepositEther": {
+ "message": "Dépôt direct d'Ether"
+ },
+ "directDepositEtherExplainer": {
+ "message": "Si vous avez déjà de l'Ether, le moyen le plus rapide d'obtenir des Ether dans votre nouveau portefeuille est par dépôt direct."
+ },
+ "done": {
+ "message": "Fait"
+ },
+ "edit": {
+ "message": "Modifier"
+ },
+ "editAccountName": {
+ "message": "Modifier le nom du compte"
+ },
+ "encryptNewDen": {
+ "message": "Chiffrer votre nouveau DEN"
+ },
+ "enterPassword": {
+ "message": "Entrer le mot de passe"
+ },
+ "etherscanView": {
+ "message": "Afficher le compte sur Etherscan"
+ },
+ "exchangeRate": {
+ "message": "Taux de change"
+ },
+ "exportPrivateKey": {
+ "message": "Exporter la clé privée"
+ },
+ "exportPrivateKeyWarning": {
+ "message": "Exporter les clés privées à vos risques et périls."
+ },
+ "failed": {
+ "message": "Échec"
+ },
+ "fiat": {
+ "message": "FIAT",
+ "description": "Type d'échange"
+ },
+ "fileImportFail": {
+ "message": "L'importation de fichier ne fonctionne pas? Cliquez ici!",
+ "description": "Aide l'utilisateur à importer son compte à partir d'un fichier JSON"
+ },
+ "from": {
+ "message": "de"
+ },
+ "fromShapeShift": {
+ "message": "ShapeShift de"
+ },
+ "gas": {
+ "message": "Gas",
+ "description": "Indication courte du coût du gaz"
+ },
+ "gasFee": {
+ "message": "Frais de gaz"
+ },
+ "gasLimit": {
+ "message": "Limite de gaz"
+ },
+ "gasLimitCalculation": {
+ "message": "Nous calculons la limite de gaz suggérée en fonction des taux de réussite du réseau."
+ },
+ "gasLimitRequired": {
+ "message": "Limite de gaz requise"
+ },
+ "gasLimitTooLow": {
+ "message": "La limite de gaz doit être d'au moins 21000"
+ },
+ "gasPrice": {
+ "message": "Prix du gaz (GWEI)"
+ },
+ "gasPriceCalculation": {
+ "message": "Nous calculons les prix du gaz proposés en fonction des taux de réussite du réseau."
+ },
+ "gasPriceRequired": {
+ "message": "Prix du gaz requis"
+ },
+ "getEther": {
+ "message": "Obtenir des Ether"
+ },
+ "getEtherFromFaucet": {
+ "message": "Obtenir de l'Ether d'une faucet pour $1",
+ "description": "Affiche le nom du réseau pour la faucet d'Ether"
+ },
+ "greaterThanMin": {
+ "message": "doit être supérieur ou égal à $1.",
+ "description": "helper pour la saisie hexadécimale en entrée décimale"
+ },
+ "here": {
+ "message": "ici",
+ "description": "comme dans -cliquer ici- pour plus d'informations (en rapport avec troubleTokenBalances)"
+ },
+ "hide": {
+ "message": "Cacher"
+ },
+ "hideToken": {
+ "message": "Masquer le jeton"
+ },
+ "hideTokenPrompt": {
+ "message": "Masquer le jeton?"
+ },
+ "howToDeposit": {
+ "message": "Comment voulez-vous déposer de l'Ether?"
+ },
+ "import": {
+ "message": "Importer",
+ "description": "Bouton pour importer un compte à partir d'un fichier sélectionné"
+ },
+ "importAccount": {
+ "message": "Importer compte"
+ },
+ "importAnAccount": {
+ "message": "Importer un compte"
+ },
+ "importDen": {
+ "message": "Importer DEN existant"
+ },
+ "imported": {
+ "message": "Importé",
+ "description": "statut indiquant qu'un compte a été entièrement chargé dans le trousseau de clés"
+ },
+ "infoHelp": {
+ "message": "Info & Aide"
+ },
+ "invalidAddress": {
+ "message": "Adresse invalide"
+ },
+ "invalidGasParams": {
+ "message": "Paramètres de gaz invalides"
+ },
+ "invalidInput": {
+ "message": "Entrée non valide."
+ },
+ "invalidRequest": {
+ "message": "Requête invalide"
+ },
+ "jsonFile": {
+ "message": "Fichier JSON",
+ "description": "format d'importation d'un compte"
+ },
+ "kovan": {
+ "message": "Réseau de test Kovan"
+ },
+ "lessThanMax": {
+ "message": "doit être inférieur ou égal à $1.",
+ "description": "helper pour la saisie hexadécimale en entrée décimale"
+ },
+ "limit": {
+ "message": "Limite"
+ },
+ "loading": {
+ "message": "Chargement..."
+ },
+ "loadingTokens": {
+ "message": "Chargement des jetons..."
+ },
+ "localhost": {
+ "message": "Localhost 8545"
+ },
+ "logout": {
+ "message": "Déconnexion"
+ },
+ "loose": {
+ "message": "Vacant"
+ },
+ "mainnet": {
+ "message": "Réseau principal Ethereum"
+ },
+ "message": {
+ "message": "Message"
+ },
+ "min": {
+ "message": "Minimum"
+ },
+ "myAccounts": {
+ "message": "Mes comptes"
+ },
+ "needEtherInWallet": {
+ "message": "Pour interagir avec des applications décentralisées à l'aide de MetaMask, vous aurez besoin d'Ether dans votre portefeuille."
+ },
+ "needImportFile": {
+ "message": "Vous devez sélectionner un fichier à importer.",
+ "description": "L'utilisateur doit ajouter un fichier pour continuer"
+ },
+ "needImportPassword": {
+ "message": "Vous devez entrer un mot de passe pour le fichier sélectionné.",
+ "description": "Mot de passe et fichier requis pour importer un compte"
+ },
+ "networks": {
+ "message": "Réseaux"
+ },
+ "newAccount": {
+ "message": "Nouveau compte"
+ },
+ "newAccountNumberName": {
+ "message": "Compte $1",
+ "description": "Nom par défaut du compte suivant à créer sur l'écran de création de compte"
+ },
+ "newContract": {
+ "message": "Nouveau contrat"
+ },
+ "newPassword": {
+ "message": "Nouveau mot de passe (min 8 caractères)"
+ },
+ "newRecipient": {
+ "message": "Nouveau destinataire"
+ },
+ "next": {
+ "message": "Suivant"
+ },
+ "noAddressForName": {
+ "message": "Aucune adresse n'a été définie pour ce nom."
+ },
+ "noDeposits": {
+ "message": "Aucun dépôt reçu"
+ },
+ "noTransactionHistory": {
+ "message": "Aucun historique de transaction."
+ },
+ "noTransactions": {
+ "message": "Aucune transaction"
+ },
+ "notStarted": {
+ "message": "Pas démarré"
+ },
+ "oldUI": {
+ "message": "Ancienne interface utilisateur"
+ },
+ "oldUIMessage": {
+ "message": "Vous êtes revenu à l'ancienne interface utilisateur.Vous pouvez revenir à la nouvelle interface via l'option dans le menu déroulant en haut à droite."
+ },
+ "or": {
+ "message": "ou",
+ "description": "choix entre la création ou l'importation d'un nouveau compte"
+ },
+ "passwordMismatch": {
+ "message": "les mots de passe ne correspondent pas",
+ "description": "dans le processus de création de mot de passe, les deux nouveaux champs de mot de passe ne correspondent pas"
+ },
+ "passwordShort": {
+ "message": "mot de passe pas assez long",
+ "description": "dans le processus de création de mot de passe, le mot de passe n'est pas assez long pour être sécurisé"
+ },
+ "pastePrivateKey": {
+ "message": "Collez votre clé privée ici:",
+ "description": "Pour l'importation d'un compte à partir d'une clé privée"
+ },
+ "pasteSeed": {
+ "message": "Collez votre seed phrase ici!"
+ },
+ "pleaseReviewTransaction": {
+ "message": "Veuillez vérifier votre transaction."
+ },
+ "privateKey": {
+ "message": "Clé privée",
+ "description": "sélectionnez ce type de fichier à utiliser pour importer un compte"
+ },
+ "privateKeyWarning": {
+ "message": "Avertissement: Ne divulguez jamais cette clé, quiconque avec vos clés privées peut voler tous les actifs de votre compte."
+ },
+ "privateNetwork": {
+ "message": "Réseau privé"
+ },
+ "qrCode": {
+ "message": "Afficher le QR Code"
+ },
+ "readdToken": {
+ "message": "Vous pouvez ajouter ce jeton dans le futur en allant sur “Ajouter un jeton” dans le menu des options de votre compte."
+ },
+ "readMore": {
+ "message": "En savoir plus ici."
+ },
+ "receive": {
+ "message": "Recevoir"
+ },
+ "recipientAddress": {
+ "message": "Adresse du destinataire"
+ },
+ "refundAddress": {
+ "message": "Votre adresse de remboursement"
+ },
+ "rejected": {
+ "message": "Rejeté"
+ },
+ "required": {
+ "message": "Obligatoire"
+ },
+ "retryWithMoreGas": {
+ "message": "Réessayez avec un prix plus élevé du gaz ici"
+ },
+ "revert": {
+ "message": "Rétablir"
+ },
+ "rinkeby": {
+ "message": "Réseau de test Rinkeby"
+ },
+ "ropsten": {
+ "message": "Réseau de test Ropsten"
+ },
+ "sampleAccountName": {
+ "message": "Par exemple mon nouveau compte",
+ "description": "Aidez l'utilisateur à comprendre le concept d'ajout d'un nom lisible par un humain à son compte"
+ },
+ "save": {
+ "message": "Enregistrer"
+ },
+ "saveAsFile": {
+ "message": "Enregistrer dans un fichier",
+ "description": "Processus d'exportation de compte"
+ },
+ "selectService": {
+ "message": "Sélectionner un service"
+ },
+ "send": {
+ "message": "Envoyé"
+ },
+ "sendTokens": {
+ "message": "Envoyer des jetons"
+ },
+ "sendTokensAnywhere": {
+ "message": "Envoyer des jetons à toute personne possédant un compte Ethereum"
+ },
+ "settings": {
+ "message": "Paramètres"
+ },
+ "shapeshiftBuy": {
+ "message": "Acheter avec Shapeshift"
+ },
+ "showPrivateKeys": {
+ "message": "Afficher les clés privées"
+ },
+ "showQRCode": {
+ "message": "Afficher le QR Code"
+ },
+ "sign": {
+ "message": "Signer"
+ },
+ "signMessage": {
+ "message": "Signer le message"
+ },
+ "signNotice": {
+ "message": "La signature de ce message peut avoir des effets secondaires \ndangereux. Signer uniquement les messages de \nsites auxquels vous faites entièrement confiance avec votre compte.\n Cette méthode dangereuse sera supprimée dans une future version."
+ },
+ "sigRequest": {
+ "message": "Demande de signature"
+ },
+ "sigRequested": {
+ "message": "Signature demandée"
+ },
+ "status": {
+ "message": "Statut"
+ },
+ "submit": {
+ "message": "Soumettre"
+ },
+ "takesTooLong": {
+ "message": "Prend trop de temps?"
+ },
+ "testFaucet": {
+ "message": "Test Faucet"
+ },
+ "to": {
+ "message": "Destinataire"
+ },
+ "toETHviaShapeShift": {
+ "message": "$1 à ETH via ShapeShift",
+ "description": "le système remplira le type de dépôt au début du message"
+ },
+ "tokenBalance": {
+ "message": "Votre solde de jeton est:"
+ },
+ "total": {
+ "message": "Total"
+ },
+ "transactionMemo": {
+ "message": "Mémo de transaction (optionnel)"
+ },
+ "transactionNumber": {
+ "message": "Numéro de transaction"
+ },
+ "transfers": {
+ "message": "Transferts"
+ },
+ "troubleTokenBalances": {
+ "message": "Nous avons eu du mal à charger votre balance de jetons, vous pouvez la consulter ",
+ "description": "Suivi par un lien (ici) pour voir les soldes des jetons"
+ },
+ "typePassword": {
+ "message": "Entrez votre mot de passe"
+ },
+ "uiWelcome": {
+ "message": "Bienvenue dans la nouvelle interface utilisateur (Beta)"
+ },
+ "uiWelcomeMessage": {
+ "message": "Vous utilisez maintenant la nouvelle interface utilisateur Metamask. Jetez un coup d'oeil, essayez de nouvelles fonctionnalités comme l'envoi de jetons, et faites-nous savoir si vous avez des problèmes."
+ },
+ "unavailable": {
+ "message": "Indisponible"
+ },
+ "unknown": {
+ "message": "Inconnu"
+ },
+ "unknownNetwork": {
+ "message": "Réseau privé inconnu"
+ },
+ "unknownNetworkId": {
+ "message": "ID réseau inconnu"
+ },
+ "usaOnly": {
+ "message": "Etats-Unis seulement",
+ "description": "Utiliser cet échange est limité aux personnes à l'intérieur des Etats-Unis"
+ },
+ "usedByClients": {
+ "message": "Utilisé par une variété de clients différents"
+ },
+ "viewAccount": {
+ "message": "Afficher le compte"
+ },
+ "warning": {
+ "message": "Avertissement"
+ },
+ "whatsThis": {
+ "message": "Qu'est-ce que c'est?"
+ },
+ "yourSigRequested": {
+ "message": "Votre signature est demandée"
+ },
+ "youSign": {
+ "message": "Vous signez"
+ }
+}
diff --git a/app/_locales/ko/messages.json b/app/_locales/ko/messages.json
index c58af4b80..d3801c4f5 100644
--- a/app/_locales/ko/messages.json
+++ b/app/_locales/ko/messages.json
@@ -1,10 +1,609 @@
{
- "appName": {
- "message": "MetaMask",
- "description": "The name of the application"
+ "accept": {
+ "message": "수락"
+ },
+ "account": {
+ "message": "계좌"
+ },
+ "accountDetails": {
+ "message": "계좌 상세보기"
+ },
+ "accountName": {
+ "message": "계좌 이름"
+ },
+ "address": {
+ "message": "주소"
+ },
+ "addToken": {
+ "message": "토큰 추가"
+ },
+ "amount": {
+ "message": "금액"
+ },
+ "amountPlusGas": {
+ "message": "금액 + 가스"
},
"appDescription": {
- "message": "이더리움 계좌 관리",
- "description": "The description of the application"
+ "message": "이더리움 브라우저 확장 프로그램",
+ "description": "어플리케이션 내용"
+ },
+ "appName": {
+ "message": "메타마스크",
+ "description": "어플리케이션 이름"
+ },
+ "attemptingConnect": {
+ "message": "블록체인에 접속 시도 중입니다."
+ },
+ "available": {
+ "message": "사용 가능한"
+ },
+ "back": {
+ "message": "뒤로"
+ },
+ "balance": {
+ "message": "잔액:"
+ },
+ "balanceIsInsufficientGas": {
+ "message": "가스가 충분하지 않습니다."
+ },
+ "beta": {
+ "message": "베타"
+ },
+ "betweenMinAndMax": {
+ "message": "$1 이상 $2 이하여야 합니다.",
+ "description": "helper for inputting hex as decimal input"
+ },
+ "borrowDharma": {
+ "message": "Dharma에서 빌리기(베타)"
+ },
+ "buy": {
+ "message": "구매"
+ },
+ "buyCoinbase": {
+ "message": "코인베이스에서 구매"
+ },
+ "buyCoinbaseExplainer": {
+ "message": "코인베이스에서 비트코인, 이더리움, 라이트코인을 구매하실 수 있습니다."
+ },
+ "cancel": {
+ "message": "취소"
+ },
+ "clickCopy": {
+ "message": "클릭하여 복사"
+ },
+ "confirm": {
+ "message": "승인"
+ },
+ "confirmContract": {
+ "message": "컨트랙트 승인"
+ },
+ "confirmPassword": {
+ "message": "패스워드 승인"
+ },
+ "confirmTransaction": {
+ "message": "트랜잭션 승인"
+ },
+ "continueToCoinbase": {
+ "message": "코인베이스로 계속하기"
+ },
+ "contractDeployment": {
+ "message": "컨트랙트 배포"
+ },
+ "conversionProgress": {
+ "message": "변환중.."
+ },
+ "copiedButton": {
+ "message": "복사되었습니다."
+ },
+ "copiedClipboard": {
+ "message": "클립보드에 복사되었습니다."
+ },
+ "copiedExclamation": {
+ "message": "복사되었습니다."
+ },
+ "copy": {
+ "message": "복사하기"
+ },
+ "copyToClipboard": {
+ "message": "클립보드에 복사"
+ },
+ "copyButton": {
+ "message": " 복사 "
+ },
+ "copyPrivateKey": {
+ "message": "비밀 키 (클릭하여 복사)"
+ },
+ "create": {
+ "message": "생성"
+ },
+ "createAccount": {
+ "message": "계좌 생성"
+ },
+ "createDen": {
+ "message": "생성"
+ },
+ "crypto": {
+ "message": "암호화폐",
+ "description": "Exchange type (cryptocurrencies)"
+ },
+ "customGas": {
+ "message": "가스 설정"
+ },
+ "customize": {
+ "message": "커스터마이즈"
+ },
+ "customRPC": {
+ "message": "커스텀 RPC"
+ },
+ "defaultNetwork": {
+ "message": "이더리움 트랜잭션의 기본 네트워크는 메인넷입니다."
+ },
+ "denExplainer": {
+ "message": "DEN은 비밀번호가 암호화 된 MetaMask의 스토리지입니다."
+ },
+ "deposit": {
+ "message": "입금"
+ },
+ "depositBTC": {
+ "message": "아래 주소로 BTC를 입급해주세요."
+ },
+ "depositCoin": {
+ "message": "아래 주소로 $1를 입금해주세요.",
+ "description": "Tells the user what coin they have selected to deposit with shapeshift"
+ },
+ "depositEth": {
+ "message": "이더 입금"
+ },
+ "depositEther": {
+ "message": "이더 입금"
+ },
+ "depositFiat": {
+ "message": "현금으로 입금하기"
+ },
+ "depositFromAccount": {
+ "message": "다른 주소에서 입금하기"
+ },
+ "depositShapeShift": {
+ "message": "ShapeShift를 통해 입금하기"
+ },
+ "depositShapeShiftExplainer": {
+ "message": "다른 암호화폐를 가지고 있으면, 계좌 생성 필요없이, 거래를 하거나 메타마스크 지갑을 통해 이더를 입금할 수 있습니다."
+ },
+ "details": {
+ "message": "상세"
+ },
+ "directDeposit": {
+ "message": "즉시 입금"
+ },
+ "directDepositEther": {
+ "message": "이더 즉시 입금"
+ },
+ "directDepositEtherExplainer": {
+ "message": "이더를 이미 보유하고 있다면, 직접 입금을 통해 이더를 즉시 입금하실 수 있습니다."
+ },
+ "done": {
+ "message": "완료"
+ },
+ "edit": {
+ "message": "수정"
+ },
+ "editAccountName": {
+ "message": "계좌명 수정"
+ },
+ "encryptNewDen": {
+ "message": "새 DEN 암호화"
+ },
+ "enterPassword": {
+ "message": "패스워드를 입력해주세요."
+ },
+ "etherscanView": {
+ "message": "이더스캔에서 계좌보기"
+ },
+ "exchangeRate": {
+ "message": "환율"
+ },
+ "exportPrivateKey": {
+ "message": "비밀키 내보내기"
+ },
+ "exportPrivateKeyWarning": {
+ "message": "Export private keys at your own risk."
+ },
+ "failed": {
+ "message": "실패"
+ },
+ "fiat": {
+ "message": "FIAT",
+ "description": "Exchange type"
+ },
+ "fileImportFail": {
+ "message": "파일을 가져올 수 없나요? 여기를 클릭해주세요!",
+ "description": "Helps user import their account from a JSON file"
+ },
+ "from": {
+ "message": "보내는 사람"
+ },
+ "fromShapeShift": {
+ "message": "ShapeShift로 부터"
+ },
+ "gas": {
+ "message": "가스",
+ "description": "Short indication of gas cost"
+ },
+ "gasFee": {
+ "message": "가스 수수료"
+ },
+ "gasLimit": {
+ "message": "가스 리밋"
+ },
+ "gasLimitCalculation": {
+ "message": "네트워크 성공률을 기반으로 적합한 가스 리밋을 계산합니다."
+ },
+ "gasLimitRequired": {
+ "message": "가스 리밋이 필요합니다."
+ },
+ "gasLimitTooLow": {
+ "message": "가스 리밋은 21000 이상이여야 합니다."
+ },
+ "gasPrice": {
+ "message": "가스 가격 (GWEI)"
+ },
+ "gasPriceCalculation": {
+ "message": "네트워크 성공률을 기반으로 적합한 가스 가격을 계산합니다."
+ },
+ "gasPriceRequired": {
+ "message": "가스 가격이 필요합니다."
+ },
+ "getEther": {
+ "message": "이더 얻기"
+ },
+ "getEtherFromFaucet": {
+ "message": "faucet에서 $1에 달하는 이더를 얻으세요.",
+ "description": "Displays network name for Ether faucet"
+ },
+ "greaterThanMin": {
+ "message": "$1 이상이어야 합니다.",
+ "description": "helper for inputting hex as decimal input"
+ },
+ "here": {
+ "message": "여기",
+ "description": "as in -click here- for more information (goes with troubleTokenBalances)"
+ },
+ "hide": {
+ "message": "숨기기"
+ },
+ "hideToken": {
+ "message": "토큰 숨기기"
+ },
+ "hideTokenPrompt": {
+ "message": "토큰 숨기기?"
+ },
+ "howToDeposit": {
+ "message": "어떤 방법으로 이더를 입금하시겠습니까?"
+ },
+ "import": {
+ "message": "파일에서 가져오기",
+ "description": "Button to import an account from a selected file"
+ },
+ "importAccount": {
+ "message": "계좌 가져오기"
+ },
+ "importAnAccount": {
+ "message": "계좌 가져오기"
+ },
+ "importDen": {
+ "message": "기존 DEN 가져오기"
+ },
+ "imported": {
+ "message": "가져오기 완료",
+ "description": "status showing that an account has been fully loaded into the keyring"
+ },
+ "infoHelp": {
+ "message": "정보 및 도움말"
+ },
+ "invalidAddress": {
+ "message": "유효하지 않은 주소"
+ },
+ "invalidGasParams": {
+ "message": "유효하지 않은 가스 입력값"
+ },
+ "invalidInput": {
+ "message": "유효하지 않은 입력값"
+ },
+ "invalidRequest": {
+ "message": "유효하지 않은 요청"
+ },
+ "jsonFile": {
+ "message": "JSON 파일",
+ "description": "format for importing an account"
+ },
+ "kovan": {
+ "message": "Kovan 테스트넷"
+ },
+ "lessThanMax": {
+ "message": "$1 이하여야합니다.",
+ "description": "helper for inputting hex as decimal input"
+ },
+ "limit": {
+ "message": "리밋"
+ },
+ "loading": {
+ "message": "로딩중..."
+ },
+ "loadingTokens": {
+ "message": "토큰 로딩중..."
+ },
+ "localhost": {
+ "message": "로컬호스트 8545"
+ },
+ "logout": {
+ "message": "로그아웃"
+ },
+ "loose": {
+ "message": "외부 비밀키"
+ },
+ "mainnet": {
+ "message": "이더리움 메인넷"
+ },
+ "message": {
+ "message": "메시지"
+ },
+ "min": {
+ "message": "최소"
+ },
+ "myAccounts": {
+ "message": "내 계좌"
+ },
+ "needEtherInWallet": {
+ "message": "dApp을 이용하기 위해서는 지갑에 이더가 있어야 합니다."
+ },
+ "needImportFile": {
+ "message": "가져올 파일을 선택해주세요.",
+ "description": "User is important an account and needs to add a file to continue"
+ },
+ "needImportPassword": {
+ "message": "선택 된 파일에 패스워드를 입력해주세요.",
+ "description": "Password and file needed to import an account"
+ },
+ "networks": {
+ "message": "네트워크"
+ },
+ "newAccount": {
+ "message": "새 계좌"
+ },
+ "newAccountNumberName": {
+ "message": "새 계좌 $1",
+ "description": "Default name of next account to be created on create account screen"
+ },
+ "newContract": {
+ "message": "새 컨트랙트"
+ },
+ "newPassword": {
+ "message": "새 패스워드 (최소 8자 이상)"
+ },
+ "newRecipient": {
+ "message": "받는 사람"
+ },
+ "next": {
+ "message": "다음"
+ },
+ "noAddressForName": {
+ "message": "이 이름에는 주소가 설정되어 있지 않습니다."
+ },
+ "noDeposits": {
+ "message": "입금이 없습니다."
+ },
+ "noTransactionHistory": {
+ "message": "트랜잭션 기록이 없습니다."
+ },
+ "noTransactions": {
+ "message": "트랜잭션이 없습니다."
+ },
+ "notStarted": {
+ "message": "시작되지 않음."
+ },
+ "oldUI": {
+ "message": "구버전의 UI"
+ },
+ "oldUIMessage": {
+ "message": "구버전 UI로 변경하셨습니다. 우 상단 드랍다운 메뉴에서 새 UI로 변경하실 수 있습니다."
+ },
+ "or": {
+ "message": "또는",
+ "description": "choice between creating or importing a new account"
+ },
+ "passwordMismatch": {
+ "message": "패스워드가 일치하지 않습니다.",
+ "description": "in password creation process, the two new password fields did not match"
+ },
+ "passwordShort": {
+ "message": "패스워드가 너무 짧습니다.",
+ "description": "in password creation process, the password is not long enough to be secure"
+ },
+ "pastePrivateKey": {
+ "message": "비밀키를 입력해주세요.",
+ "description": "For importing an account from a private key"
+ },
+ "pasteSeed": {
+ "message": "시드 문장들을 붙여넣어주세요."
+ },
+ "pleaseReviewTransaction": {
+ "message": "트랜잭션을 검토해주세요."
+ },
+ "privateKey": {
+ "message": "비밀키",
+ "description": "select this type of file to use to import an account"
+ },
+ "privateKeyWarning": {
+ "message": " 절대 이 키를 노출하지 마십시오. 비밀키가 노출되면 누구나 당신의 계좌에서 자산을 빼갈 수 있습니다."
+ },
+ "privateNetwork": {
+ "message": "프라이빗 네트워크"
+ },
+ "qrCode": {
+ "message": "QR 코드 보기"
+ },
+ "readdToken": {
+ "message": "옵션 메뉴에서 “토큰 추가”를 눌러서 추후에 다시 이 토큰을 추가하실 수 있습니다."
+ },
+ "readMore": {
+ "message": "더 읽기."
+ },
+ "receive": {
+ "message": "받기"
+ },
+ "recipientAddress": {
+ "message": "받는 사람 주소"
+ },
+ "refundAddress": {
+ "message": "환불받을 주소"
+ },
+ "rejected": {
+ "message": "거부되었음."
+ },
+ "required": {
+ "message": "필요함."
+ },
+ "retryWithMoreGas": {
+ "message": "더 높은 가스 가격으로 다시 시도해주세요."
+ },
+ "revert": {
+ "message": "취소"
+ },
+ "rinkeby": {
+ "message": "Rinkeby 테스트넷"
+ },
+ "ropsten": {
+ "message": "Ropsten 테스트넷"
+ },
+ "sampleAccountName": {
+ "message": "예) 나의 새 계좌",
+ "description": "Help user understand concept of adding a human-readable name to their account"
+ },
+ "save": {
+ "message": "저장"
+ },
+ "saveAsFile": {
+ "message": "파일로 저장",
+ "description": "Account export process"
+ },
+ "selectService": {
+ "message": "서비스 선택"
+ },
+ "send": {
+ "message": "전송"
+ },
+ "sendTokens": {
+ "message": "토큰 전송"
+ },
+ "sendTokensAnywhere": {
+ "message": "이더 계좌로 토큰 전송"
+ },
+ "settings": {
+ "message": "설정"
+ },
+ "shapeshiftBuy": {
+ "message": "Shapeshift를 통해서 구매하기"
+ },
+ "showPrivateKeys": {
+ "message": "비밀키 보기"
+ },
+ "showQRCode": {
+ "message": "QR코드 보기"
+ },
+ "sign": {
+ "message": "서명"
+ },
+ "signMessage": {
+ "message": "서명 메시지"
+ },
+ "signNotice": {
+ "message": "이 메시지에 대한 서명은 위험할 수 있습니다.\n 완전히 신뢰할 수 있는 사이트에서만 서명해주세요.\n 안전을 위해 추후의 버전에서는 삭제될 기능입니다. "
+ },
+ "sigRequest": {
+ "message": "서명 요청"
+ },
+ "sigRequested": {
+ "message": "서명이 요청되었습니다."
+ },
+ "status": {
+ "message": "상태"
+ },
+ "submit": {
+ "message": "제출"
+ },
+ "takesTooLong": {
+ "message": "너무 오래걸리나요?"
+ },
+ "testFaucet": {
+ "message": "Faucet 테스트"
+ },
+ "to": {
+ "message": "대상"
+ },
+ "toETHviaShapeShift": {
+ "message": "ShapeShift를 통해 $1를 ETH로 바꾸기",
+ "description": "system will fill in deposit type in start of message"
+ },
+ "tokenBalance": {
+ "message": "현재 토큰 잔액: "
+ },
+ "total": {
+ "message": "합계"
+ },
+ "transactionMemo": {
+ "message": "트랜잭션 메모 (선택사항)"
+ },
+ "transactionNumber": {
+ "message": "트랜잭션 번호"
+ },
+ "transfers": {
+ "message": "전송"
+ },
+ "troubleTokenBalances": {
+ "message": "토큰 잔액을 가져오는데에 문제가 생겼습니다. (여기)서 상세내용을 볼 수 있습니다.",
+ "description": "Followed by a link (here) to view token balances"
+ },
+ "typePassword": {
+ "message": "패스워드를 입력하세요."
+ },
+ "uiWelcome": {
+ "message": "새 UI에 오신 것을 환영합니다. (베타)"
+ },
+ "uiWelcomeMessage": {
+ "message": "새 메타마스크 UI를 사용하고 계십니다. 토큰 전송과 같은 새 기능들을 사용해보시면서 문제가 있다면 알려주세요."
+ },
+ "unavailable": {
+ "message": "유효하지 않은"
+ },
+ "unknown": {
+ "message": "알려지지 않은"
+ },
+ "unknownNetwork": {
+ "message": "알려지지 않은 프라이빗 네트워크"
+ },
+ "unknownNetworkId": {
+ "message": "알려지지 않은 네트워크 ID"
+ },
+ "usaOnly": {
+ "message": "USA 거주자 한정",
+ "description": "Using this exchange is limited to people inside the USA"
+ },
+ "usedByClients": {
+ "message": "다양한 클라이언트에서 사용되고 있습니다."
+ },
+ "viewAccount": {
+ "message": "계좌 보기"
+ },
+ "warning": {
+ "message": "경고"
+ },
+ "whatsThis": {
+ "message": "이것은 무엇인가요?"
+ },
+ "yourSigRequested": {
+ "message": "서명이 요청되고 있습니다."
+ },
+ "youSign": {
+ "message": "서명 중입니다."
}
}
diff --git a/app/_locales/vi/messages.json b/app/_locales/vi/messages.json
new file mode 100644
index 000000000..cd30de4de
--- /dev/null
+++ b/app/_locales/vi/messages.json
@@ -0,0 +1,609 @@
+{
+ "accept": {
+ "message": "Chấp nhận"
+ },
+ "account": {
+ "message": "Tài khoản"
+ },
+ "accountDetails": {
+ "message": "Chi tiết tài khoản"
+ },
+ "accountName": {
+ "message": "Tên tài khoản"
+ },
+ "addToken": {
+ "message": "Thêm mã Token"
+ },
+ "address": {
+ "message": "Địa chỉ"
+ },
+ "amount": {
+ "message": "Số lượng"
+ },
+ "amountPlusGas": {
+ "message": "Số lượng + Gas"
+ },
+ "appDescription": {
+ "description": "Mô tả phần mềm",
+ "message": "Tính năng Ethereum cho trình duyệt"
+ },
+ "appName": {
+ "description": "Tên phần mềm",
+ "message": "MetaMask"
+ },
+ "attemptingConnect": {
+ "message": "Đang kết nối đến blockchain."
+ },
+ "available": {
+ "message": "Có sẵn"
+ },
+ "back": {
+ "message": "Quay lại"
+ },
+ "balance": {
+ "message": "Số dư:"
+ },
+ "balanceIsInsufficientGas": {
+ "message": "Số dư không đủ để thanh toán tổng tiền gas hiện tại"
+ },
+ "beta": {
+ "message": "Bản thử nghiệm Beta"
+ },
+ "betweenMinAndMax": {
+ "description": "trợ giúp để nhập hex dưới dạng số thập phân",
+ "message": "phải nhiều hơn hoặc bằng $1 và ít hơn hoặc bằng $2."
+ },
+ "borrowDharma": {
+ "message": "Vay Dharma (thử nghiệm)"
+ },
+ "buy": {
+ "message": "Mua"
+ },
+ "buyCoinbase": {
+ "message": "Mua trên Coinbase"
+ },
+ "buyCoinbaseExplainer": {
+ "message": "Coinbase là dịch vụ ví điện tử thông dụng nhất thế giới để mua bán Bitcoin, Ethereum, và Litecoin"
+ },
+ "cancel": {
+ "message": "Hủy"
+ },
+ "clickCopy": {
+ "message": "Nhấp vào để sao chép"
+ },
+ "confirm": {
+ "message": "Xác nhận"
+ },
+ "confirmContract": {
+ "message": "Xác nhận hợp đồng"
+ },
+ "confirmPassword": {
+ "message": "Xác nhận mật khẩu"
+ },
+ "confirmTransaction": {
+ "message": "Xác nhận giao dịch"
+ },
+ "continueToCoinbase": {
+ "message": "Tiếp tục đến Coinbase"
+ },
+ "contractDeployment": {
+ "message": "Triển khai hợp đồng"
+ },
+ "conversionProgress": {
+ "message": "Đang chuyển đổi"
+ },
+ "copiedButton": {
+ "message": "Đã sao chép"
+ },
+ "copiedClipboard": {
+ "message": "Đã sao chép vào bộ nhớ Clipboard"
+ },
+ "copiedExclamation": {
+ "message": "Đã sao chép!"
+ },
+ "copy": {
+ "message": "Sao chép"
+ },
+ "copyButton": {
+ "message": "Sao chép"
+ },
+ "copyPrivateKey": {
+ "message": "Đây là Khoá Bí Mật của bạn (nhấp vào để sao chép)"
+ },
+ "copyToClipboard": {
+ "message": "Đã sao chép vào clipboard"
+ },
+ "create": {
+ "message": "Tạo"
+ },
+ "createAccount": {
+ "message": "Tạo tài khoản"
+ },
+ "createDen": {
+ "message": "Tạo"
+ },
+ "crypto": {
+ "description": "Hình thức giao dịch (tiền điện tử)",
+ "message": "Tiền điện tử"
+ },
+ "customGas": {
+ "message": "Tùy chỉnh gas"
+ },
+ "customRPC": {
+ "message": "Tùy chỉnh RPC"
+ },
+ "customize": {
+ "message": "Tùy chỉnh"
+ },
+ "defaultNetwork": {
+ "message": "Mạng lưới mặc định dùng cho các giao dịch Ether là Main Net (tiền ETH thật)."
+ },
+ "denExplainer": {
+ "message": "Số DEN của bạn là mật khẩu đã được mã hóa và lưu trữ trong MetaMask"
+ },
+ "deposit": {
+ "message": "Ký gửi/nạp tiền"
+ },
+ "depositBTC": {
+ "message": "Ký gửi BTC đến địa chỉ sau:"
+ },
+ "depositCoin": {
+ "description": "Báo cho người dùng biết đồng tiền nào họ đã chọn để ký gửi với ShapeShift",
+ "message": "Ký gửi $1 đến địa chỉ sau:"
+ },
+ "depositEth": {
+ "message": "Ký gửi Eth"
+ },
+ "depositEther": {
+ "message": "Ký gửi Ether"
+ },
+ "depositFiat": {
+ "message": "Ký gửi bằng tiền Fiat (USD, GBP, ...)"
+ },
+ "depositFromAccount": {
+ "message": "Ký gửi từ một tài khoản khác"
+ },
+ "depositShapeShift": {
+ "message": "Ký gửi với ShapeShift"
+ },
+ "depositShapeShiftExplainer": {
+ "message": "Nếu bạn sở hữu các đồng tiền điện tử khác, bạn có thể giao dịch và ký gửi Ether trực tiếp vào ví MetaMask của bạn. Không cần tạo thêm tài khoản."
+ },
+ "details": {
+ "message": "Chi tiết"
+ },
+ "directDeposit": {
+ "message": "Ký gửi trực tiếp"
+ },
+ "directDepositEther": {
+ "message": "Ký gửi Ether trực tiếp"
+ },
+ "directDepositEtherExplainer": {
+ "message": "Nếu bạn đã có sẵn vài Ether, cách nhanh nhất để thêm Ether vào ví tiền mới của bạn là bằng ký gửi trực tiếp."
+ },
+ "done": {
+ "message": "Hoàn tất"
+ },
+ "edit": {
+ "message": "Chỉnh sửa"
+ },
+ "editAccountName": {
+ "message": "Chỉnh sửa tên tài khoản"
+ },
+ "encryptNewDen": {
+ "message": "Mã hóa số DEN mới của bạn"
+ },
+ "enterPassword": {
+ "message": "Nhập mật khẩu"
+ },
+ "etherscanView": {
+ "message": "Xem tài khoản trên Etherscan"
+ },
+ "exchangeRate": {
+ "message": "Tỷ giá"
+ },
+ "exportPrivateKey": {
+ "message": "Xuất mã khóa cá nhân"
+ },
+ "exportPrivateKeyWarning": {
+ "message": "Xuất mã khóa cá nhân theo rủi ro tự chịu"
+ },
+ "failed": {
+ "message": "Không thành công"
+ },
+ "fiat": {
+ "description": "Hình thức giao dịch",
+ "message": "FIAT"
+ },
+ "fileImportFail": {
+ "description": "Giúp người dùng nhập tài khoản từ tập tin JSON",
+ "message": "Tập tin đã nhập không hoạt động? Nhấp vào đây!"
+ },
+ "from": {
+ "message": "Từ"
+ },
+ "fromShapeShift": {
+ "message": "Từ ShapeShift"
+ },
+ "gas": {
+ "description": "Viết tắt của giá ga",
+ "message": "Ga"
+ },
+ "gasFee": {
+ "message": "Tiền ga"
+ },
+ "gasLimit": {
+ "message": "Hạn mức ga"
+ },
+ "gasLimitCalculation": {
+ "message": "Chúng tôi tính toán và gợi ý một hạn mức ga cụ thể dựa trên tỷ lệ thành công của hệ thống."
+ },
+ "gasLimitRequired": {
+ "message": "Hạn mức ga được yêu cầu"
+ },
+ "gasLimitTooLow": {
+ "message": "Hạn mức ga phải đạt tối thiểu 21000"
+ },
+ "gasPrice": {
+ "message": "Giá ga (GWEI)"
+ },
+ "gasPriceCalculation": {
+ "message": "Chúng tôi tính toán và gợi ý một giá ga cụ thể dựa trên tỷ lệ thành công của hệ thống."
+ },
+ "gasPriceRequired": {
+ "message": "Giá ga được yêu cầu"
+ },
+ "getEther": {
+ "message": "Lấy Ether"
+ },
+ "getEtherFromFaucet": {
+ "description": "Hiển thị tên mạng cho vòi Ether",
+ "message": "Lấy Ether từ vòi với giá $1"
+ },
+ "greaterThanMin": {
+ "description": "trợ giúp để nhập hex dưới dạng số thập phân",
+ "message": "phải nhiều hơn hoặc bằng $1"
+ },
+ "here": {
+ "description": "như trong -Nhấp vào đây để xem thêm thông tin- (dùng với các số dư token có vấn đề)",
+ "message": "tại đây"
+ },
+ "hide": {
+ "message": "Ẩn"
+ },
+ "hideToken": {
+ "message": "Ẩn mã token"
+ },
+ "hideTokenPrompt": {
+ "message": "Ẩn mã token?"
+ },
+ "howToDeposit": {
+ "message": "Bạn muốn ký gửi Ether bằng cách nào?"
+ },
+ "import": {
+ "description": "Nút để nhập tài khoản từ một tập tin đã chọn",
+ "message": "Nhập"
+ },
+ "importAccount": {
+ "message": "Nhập tài khoản"
+ },
+ "importAnAccount": {
+ "message": "Nhập một tài khoản"
+ },
+ "importDen": {
+ "message": "Nhập mã DEN hiện hành"
+ },
+ "imported": {
+ "description": "Trạng thái hiển thị cho một tài khoản đã được tải toàn bộ vào chùm chìa khóa",
+ "message": "Đã nhập"
+ },
+ "infoHelp": {
+ "message": "Thông tin & Trợ giúp"
+ },
+ "invalidAddress": {
+ "message": "Địa chỉ không hợp lệ"
+ },
+ "invalidGasParams": {
+ "message": "Thông số ga không hợp lệ"
+ },
+ "invalidInput": {
+ "message": "Thông tin nhập vào không hợp lệ"
+ },
+ "invalidRequest": {
+ "message": "Yêu cầu không hợp lệ"
+ },
+ "jsonFile": {
+ "description": "định dạng để nhập tài khoản",
+ "message": "Tập tin JSON"
+ },
+ "kovan": {
+ "message": "Mạng thử nghiệm Kovan"
+ },
+ "lessThanMax": {
+ "description": "trợ giúp để nhập hex dưới dạng số thập phân",
+ "message": "phải ít hơn hoặc bằng $1."
+ },
+ "limit": {
+ "message": "Giới hạn"
+ },
+ "loading": {
+ "message": "Đang tải..."
+ },
+ "loadingTokens": {
+ "message": "Đang tải mã token..."
+ },
+ "localhost": {
+ "message": "Localhost 8545"
+ },
+ "logout": {
+ "message": "Thoát"
+ },
+ "loose": {
+ "message": "Nới lỏng"
+ },
+ "mainnet": {
+ "message": "Mạng Ethereum MainNet (tiền ETH thật)"
+ },
+ "message": {
+ "message": "Tin nhắn"
+ },
+ "min": {
+ "message": "Tối thiểu"
+ },
+ "myAccounts": {
+ "message": "Tài khoản của tôi"
+ },
+ "needEtherInWallet": {
+ "message": "Để tương tác với các ứng dụng phân tán bằng MetaMask, bạn sẽ phải cần có Ether trong ví của bạn."
+ },
+ "needImportFile": {
+ "description": "Người dùng đang nhập một tài khoản và cần thêm tập tin để tiếp tục",
+ "message": "Bạn phải chọn một tập tin để nhập."
+ },
+ "needImportPassword": {
+ "description": "Mật khẩu và tập tin cần thiết để nhập một tài khoản",
+ "message": "Bạn phải điền mật khẩu cho tập tin đã chọn."
+ },
+ "networks": {
+ "message": "Các mạng lưới"
+ },
+ "newAccount": {
+ "message": "Tài khoản mới"
+ },
+ "newAccountNumberName": {
+ "description": "Tên mặc định của tài khoản tiếp theo để tạo trên màn hình tài khoản",
+ "message": "Tài khoản $1"
+ },
+ "newContract": {
+ "message": "Hợp đồng mới"
+ },
+ "newPassword": {
+ "message": "Mật khẩu mới (tối thiểu 8 ký tự)"
+ },
+ "newRecipient": {
+ "message": "Người nhận mới"
+ },
+ "next": {
+ "message": "Kế tiếp"
+ },
+ "noAddressForName": {
+ "message": "Không có địa chỉ nào được ấn định cho tên này."
+ },
+ "noDeposits": {
+ "message": "Không có tiền ký gửi nào được nhận"
+ },
+ "noTransactionHistory": {
+ "message": "Không có lịch sử giao dịch"
+ },
+ "noTransactions": {
+ "message": "Không có giao dịch"
+ },
+ "notStarted": {
+ "message": "Chưa bắt đầu"
+ },
+ "oldUI": {
+ "message": "Giao diện cũ"
+ },
+ "oldUIMessage": {
+ "message": "Bạn vừa quay về giao diện cũ. Bạn có thể chuyển đổi sang giao diện mới bằng tùy chọn trong menu ở góc phải trên cùng."
+ },
+ "or": {
+ "description": "lựa chọn giữa tạo hay nhập một tài khoản mới",
+ "message": "hoặc"
+ },
+ "passwordMismatch": {
+ "description": "trong quá trình tạo mật khẩu, hai trường mật khẩu mới không khớp",
+ "message": "mật khẩu không khớp"
+ },
+ "passwordShort": {
+ "description": "trong quá trình tạo mật khẩu, mật khẩu không đủ dài để đảm bảo an toàn",
+ "message": "mật khẩu không đủ dài"
+ },
+ "pastePrivateKey": {
+ "description": "Dùng cho việc nhập tài khoản từ một khóa cá nhân",
+ "message": "Dán dãy khóa cá nhân của bạn tại đây:"
+ },
+ "pasteSeed": {
+ "message": "Dán Mật Khẩu Sinh Khoá (seed phrase) của bạn tại đây!"
+ },
+ "pleaseReviewTransaction": {
+ "message": "Vui lòng xem lại giao dịch của bạn."
+ },
+ "privateKey": {
+ "description": "chọn định dạng tập tin này để nhập một tài khoản",
+ "message": "Khóa Bí Mật"
+ },
+ "privateKeyWarning": {
+ "message": "Cảnh báo: Không bao giờ được tiết lộ khóa này. Bất kỳ ai có Khóa Bí Mật của bạn đều có thể đánh cắp tài sản được giữ trong tài khoản của bạn."
+ },
+ "privateNetwork": {
+ "message": "Mạng lưới riêng"
+ },
+ "qrCode": {
+ "message": "Hiển thị mã QR"
+ },
+ "readMore": {
+ "message": "Đọc thêm tại đây."
+ },
+ "readdToken": {
+ "message": "Bạn có thể thêm trở lại mã token này bằng cách nhấn \"Thêm mã token\" trong menu tùy chọn trong tài khoản của bạn."
+ },
+ "receive": {
+ "message": "Nhận"
+ },
+ "recipientAddress": {
+ "message": "Địa chỉ người nhận"
+ },
+ "refundAddress": {
+ "message": "Địa chỉ hoàn trả lại của bạn"
+ },
+ "rejected": {
+ "message": "Không chấp thuận/Bị từ chối"
+ },
+ "required": {
+ "message": "Yêu cầu"
+ },
+ "retryWithMoreGas": {
+ "message": "Thử lại với một giá ga cao hơn tại đây"
+ },
+ "revert": {
+ "message": "Chuyển lại"
+ },
+ "rinkeby": {
+ "message": "Mạng thử nghiệm Rinkeby"
+ },
+ "ropsten": {
+ "message": "Mạng thử nghiệm Ropsten"
+ },
+ "sampleAccountName": {
+ "description": "Giúp người dùng hiểu khái niệm thêm một cái tên có thể đọc được vào tài khoản của họ",
+ "message": "Ví dụ, Tài khoản mới của tôi"
+ },
+ "save": {
+ "message": "Lưu"
+ },
+ "saveAsFile": {
+ "description": "Quá trình xuất tài khoản",
+ "message": "Lưu lại dưới dạng tập tin"
+ },
+ "selectService": {
+ "message": "Chọn dịch vụ"
+ },
+ "send": {
+ "message": "Gửi"
+ },
+ "sendTokens": {
+ "message": "Gửi mã token"
+ },
+ "sendTokensAnywhere": {
+ "message": "Gửi mã token đến bất kỳ ai có tài khoản Ethereum"
+ },
+ "settings": {
+ "message": "Cài đặt"
+ },
+ "shapeshiftBuy": {
+ "message": "Mua với ShapeShift"
+ },
+ "showPrivateKeys": {
+ "message": "Hiển thị khóa cá nhân"
+ },
+ "showQRCode": {
+ "message": "Hiển thị mã QR"
+ },
+ "sigRequest": {
+ "message": "Yêu cầu chữ ký"
+ },
+ "sigRequested": {
+ "message": "Đã yêu cầu chữ ký"
+ },
+ "sign": {
+ "message": "Ký nhận"
+ },
+ "signMessage": {
+ "message": "Ký nhận tin nhắn"
+ },
+ "signNotice": {
+ "message": "Ký nhận vào tin nhắn này có thể gây nguy hiểm. Chỉ nên ký nhận tin nhắn từ những nguồn bạn hoàn toàn tin tưởng có thể dùng với tài khoản của bạn. Cách thức nguy hiểm này sẽ bị xóa trong phiên bản sắp tới."
+ },
+ "status": {
+ "message": "Trạng thái"
+ },
+ "submit": {
+ "message": "Gửi đi"
+ },
+ "takesTooLong": {
+ "message": "Chờ quá lâu?"
+ },
+ "testFaucet": {
+ "message": "Vòi nhận tiền ETH ảo để thử nghiệm"
+ },
+ "to": {
+ "message": "Đến"
+ },
+ "toETHviaShapeShift": {
+ "description": "hệ thống sẽ điền vào loại tiền gửi khi bắt đầu tin nhắn",
+ "message": "$1 thành ETH qua ShapeShift"
+ },
+ "tokenBalance": {
+ "message": "Số dư token của bạn là:"
+ },
+ "total": {
+ "message": "Tổng cộng"
+ },
+ "transactionMemo": {
+ "message": "Ghi nhớ giao dịch (tùy chọn)"
+ },
+ "transactionNumber": {
+ "message": "Số thứ tự giao dịch"
+ },
+ "transfers": {
+ "message": "Các giao dịch"
+ },
+ "troubleTokenBalances": {
+ "description": "Kèm theo một đường link (tại đây) để xem số dư token.",
+ "message": "Chúng tôi gặp sự cố khi tải số dư token của bạn. Xin vui lòng xem lại"
+ },
+ "typePassword": {
+ "message": "Điền mật khẩu của bạn"
+ },
+ "uiWelcome": {
+ "message": "Chào mừng bạn đến với giao diện mới (Beta)"
+ },
+ "uiWelcomeMessage": {
+ "message": "Bạn đang sử dụng giao diện mới của Metamask. Chúng tôi khuyến khích bạn thử nghiệm và khám phá các tính năng mới như gửi token, và nếu bạn có gặp phải vấn đề gì khó khăn, xin hãy liên hệ ngay để chúng tôi có thể giúp đỡ bạn."
+ },
+ "unavailable": {
+ "message": "Không có sẵn"
+ },
+ "unknown": {
+ "message": "Không xác định"
+ },
+ "unknownNetwork": {
+ "message": "Mạng lưới riêng không xác định"
+ },
+ "unknownNetworkId": {
+ "message": "ID không xác định"
+ },
+ "usaOnly": {
+ "description": "Việc sử dụng hệ thống giao dịch này chỉ giới hạn cho người dùng ở Mỹ",
+ "message": "Chỉ áp dụng cho người dùng ở Mỹ"
+ },
+ "usedByClients": {
+ "message": "Được sử dụng bởi nhiều khách hàng khác nhau"
+ },
+ "viewAccount": {
+ "message": "Xem tài khoản"
+ },
+ "warning": {
+ "message": "Cảnh báo"
+ },
+ "whatsThis": {
+ "message": "Đây là gì?"
+ },
+ "youSign": {
+ "message": "Bạn đang ký nhận"
+ },
+ "yourSigRequested": {
+ "message": "Chữ ký của bạn đang được yêu cầu"
+ }
+}
diff --git a/app/images/arrow-right.svg b/app/images/arrow-right.svg
new file mode 100644
index 000000000..ea5cd0609
--- /dev/null
+++ b/app/images/arrow-right.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="25px" height="21px" viewBox="0 0 25 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 48.2 (47327) - http://www.bohemiancoding.com/sketch -->
+ <title>arrow-right</title>
+ <desc>Created with Sketch.</desc>
+ <defs></defs>
+ <g id="Confirm-Send-ETH---V3" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-500.000000, -235.000000)">
+ <g id="Group-4" transform="translate(312.000000, 99.000000)" fill="#5B5B5B">
+ <g id="Group-18" transform="translate(109.000000, 119.000000)">
+ <g id="arrow-right" transform="translate(78.000000, 17.000000)">
+ <path d="M13.2809946,0.467462271 L13.2809946,0.467462271 C12.6477116,1.09191648 12.6477116,2.10286154 13.2809946,2.72571868 L19.1052554,8.46878095 L2.61883998,8.46878095 C1.72479329,8.46878095 0.999190175,9.18426813 0.999190175,10.0658505 L0.999190175,10.0674476 C0.999190175,10.94903 1.72479329,11.6629201 2.61883998,11.6629201 L19.1052554,11.6629201 L13.2809946,17.4075795 C12.6477116,18.0304366 12.6477116,19.0413817 13.2809946,19.6658359 C13.9126581,20.288693 14.9378964,20.288693 15.5711795,19.6658359 L25.3052748,10.0658505 L15.5711795,0.467462271 C14.9378964,-0.155394872 13.9126581,-0.155394872 13.2809946,0.467462271" id="Fill-1"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/app/images/deposit-eth.svg b/app/images/deposit-eth.svg
new file mode 100644
index 000000000..a2c69242e
--- /dev/null
+++ b/app/images/deposit-eth.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="80px" height="78px" viewBox="0 0 80 78" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->
+ <title>deposit-eth</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <circle id="path-1" cx="34" cy="34" r="34"></circle>
+ <circle id="path-2" cx="17" cy="17" r="17"></circle>
+ </defs>
+ <g id="Buy-ETH" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="deposit-Ether" transform="translate(-79.000000, -146.000000)">
+ <g id="Group-12" transform="translate(8.000000, 10.000000)">
+ <g id="Group-7" transform="translate(71.000000, 122.000000)">
+ <g id="deposit-eth" transform="translate(0.000000, 14.000000)">
+ <g id="Oval">
+ <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-1"></use>
+ <circle stroke="#38393A" stroke-width="3" cx="34" cy="34" r="32.5"></circle>
+ </g>
+ <path d="M34.406509,44.95 L22,37.7 L34.406509,55 L46.8205983,37.7 L34.4039822,44.95 L34.406509,44.95 Z M34.593491,15 L22.186982,35.37 L34.593491,42.6275 L47,35.3775 L34.593491,15 Z" id="Shape" fill="#38393A"></path>
+ <g id="Group-6" transform="translate(46.000000, 44.000000)">
+ <g id="Oval-Copy">
+ <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-2"></use>
+ <circle stroke="#38393A" stroke-width="3" cx="17" cy="17" r="15.5"></circle>
+ </g>
+ <path d="M19.0769231,15.4230769 L25.5,15.4230769 L25.5,19.5769231 L19.0769231,19.5769231 L19.0769231,26 L14.9230769,26 L14.9230769,19.5769231 L8.5,19.5769231 L8.5,15.4230769 L14.9230769,15.4230769 L14.9230769,9 L19.0769231,9 L19.0769231,15.4230769 Z" id="Combined-Shape" fill="#38393A"></path>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js
index 2ed7c87b6..7abbc60e7 100644
--- a/app/scripts/contentscript.js
+++ b/app/scripts/contentscript.js
@@ -96,7 +96,8 @@ function logStreamDisconnectWarning (remoteLabel, err) {
}
function shouldInjectWeb3 () {
- return doctypeCheck() && suffixCheck() && documentElementCheck()
+ return doctypeCheck() && suffixCheck()
+ && documentElementCheck() && !blacklistedDomainCheck()
}
function doctypeCheck () {
@@ -129,6 +130,20 @@ function documentElementCheck () {
return true
}
+function blacklistedDomainCheck () {
+ var blacklistedDomains = ['uscourts.gov', 'dropbox.com']
+ var currentUrl = window.location.href
+ var currentRegex
+ for (let i = 0; i < blacklistedDomains.length; i++) {
+ const blacklistedDomain = blacklistedDomains[i].replace('.', '\\.')
+ currentRegex = new RegExp(`(?:https?:\\/\\/)(?:(?!${blacklistedDomain}).)*$`)
+ if (!currentRegex.test(currentUrl)) {
+ return true
+ }
+ }
+ return false
+}
+
function redirectToPhishingWarning () {
console.log('MetaMask - redirecting to phishing warning')
window.location.href = 'https://metamask.io/phishing.html'
diff --git a/app/scripts/lib/local-store.js b/app/scripts/lib/local-store.js
index 1cf00dd30..5b47985f6 100644
--- a/app/scripts/lib/local-store.js
+++ b/app/scripts/lib/local-store.js
@@ -3,7 +3,6 @@
// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage/local
const extension = require('extensionizer')
-const { promisify } = require('util')
module.exports = class ExtensionStore {
constructor() {
@@ -11,9 +10,6 @@ module.exports = class ExtensionStore {
if (!this.isSupported) {
log.error('Storage local API not available.')
}
- const local = extension.storage.local
- this._get = promisify(local.get).bind(local)
- this._set = promisify(local.set).bind(local)
}
async get() {
@@ -31,6 +27,34 @@ module.exports = class ExtensionStore {
async set(state) {
return this._set(state)
}
+
+ _get() {
+ const local = extension.storage.local
+ return new Promise((resolve, reject) => {
+ local.get(null, (result) => {
+ const err = extension.runtime.lastError
+ if (err) {
+ reject(err)
+ } else {
+ resolve(result)
+ }
+ })
+ })
+ }
+
+ _set(obj) {
+ const local = extension.storage.local
+ return new Promise((resolve, reject) => {
+ local.set(obj, () => {
+ const err = extension.runtime.lastError
+ if (err) {
+ reject(err)
+ } else {
+ resolve()
+ }
+ })
+ })
+ }
}
function isEmpty(obj) {