1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-22 17:33:23 +01:00

better organization of locale file; i18n in more view files

This commit is contained in:
Nick Doiron 2018-01-23 22:14:47 -10:00
parent bad70eb1b3
commit 99898ac775
26 changed files with 629 additions and 260 deletions

View File

@ -1,71 +1,224 @@
{
"appName": {
"message": "MetaMask",
"description": "The name of the application"
"accept": {
"message": "Accept"
},
"account": {
"message": "Account:"
},
"accDetails": {
"message": "Account Details"
},
"accountName": {
"message": "Account Name"
},
"address": {
"message": "Address"
},
"addToken": {
"message": "Add Token"
},
"amountPlusGas": {
"message": "Amount + Gas"
},
"appDescription": {
"message": "Ethereum Identity Management",
"description": "The description of the application"
},
"encryptNewDen": {
"message": "Encrypt your new DEN"
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
"denExplainer": {
"message": "Your DEN is your password-encrypted storage within MetaMask."
"attemptingConnect": {
"message": "Attempting to connect to blockchain."
},
"importDen": {
"message": "Import Existing DEN"
"available": {
"message": "Available"
},
"createDen": {
"message": "Create"
"back": {
"message": "Back"
},
"newPassword": {
"message": "New Password (min 8 chars)"
"balance": {
"message": "Balance:"
},
"balanceIsInsufficientGas": {
"message": "Insufficient balance for current gas total"
},
"borrowDharma": {
"message": "Borrow With Dharma (Beta)"
},
"buyButton": {
"message": "Buy"
},
"buyCoinbase": {
"message": "Buy on Coinbase"
},
"buyCoinbaseExplainer": {
"message": "Coinbase is the worlds most popular way to buy and sell bitcoin, ethereum, and litecoin."
},
"cancel": {
"message": "Cancel"
},
"cancelCaps": {
"message": "CANCEL"
},
"clickCopy": {
"message": "Click to Copy"
},
"confirm": {
"message": "Confirm"
},
"confirmCaps": {
"message": "CONFIRM"
},
"confirmContract": {
"message": "Confirm Contract"
},
"confirmPassword": {
"message": "Confirm Password"
},
"passwordMismatch": {
"message": "passwords don't match"
"confirmPasswordSmall": {
"message": "confirm password"
},
"passwordShort": {
"message": "password not long enough"
"continueToCoinbase": {
"message": "Continue to Coinbase"
},
"myAccounts": {
"message": "My Accounts"
"contractPublished": {
"message": "Contract Published"
},
"logout": {
"message": "Log out"
"conversionProgress": {
"message": "Conversion in progress"
},
"copiedButton": {
"message": "Copied"
},
"copiedClipboard": {
"message": "Copied to Clipboard"
},
"copiedExclamation": {
"message": "Copied!"
},
"copy": {
"message": "Copy"
},
"copyAddress": {
"message": "Copy Address to clipboard"
},
"copyButton": {
"message": " Copy "
},
"copyPrivateKey": {
"message": "This is your private key (click to copy)"
},
"createAccount": {
"message": "Create Account"
},
"importAccount": {
"message": "Import Account"
"createCaps": {
"message": "CREATE"
},
"account": {
"message": "Account:"
"createDen": {
"message": "Create"
},
"infoHelp": {
"message": "Info & Help"
"customGas": {
"message": "Customize Gas"
},
"settings": {
"message": "Settings"
"customize": {
"message": "Customize"
},
"importedCaps": {
"message": "IMPORTED"
"customRPC": {
"message": "Custom RPC"
},
"saveButton": {
"message": "SAVE"
"defaultNetwork": {
"message": "The default network for Ether transactions is Main Net."
},
"cancelButton": {
"message": "CANCEL"
"denExplainer": {
"message": "Your DEN is your password-encrypted storage within MetaMask."
},
"signButton": {
"message": "SIGN"
"deposit": {
"message": "Deposit"
},
"revert": {
"message": "Revert"
"depositBTC": {
"message": "Deposit your BTC to the address below:"
},
"depositButton": {
"message": "DEPOSIT"
},
"depositEth": {
"message": "Deposit Eth"
},
"depositEther": {
"message": "Deposit Ether"
},
"depositFiat": {
"message": "Deposit with Fiat"
},
"depositFromAccount": {
"message": "Deposit from another account"
},
"depositShapeShift": {
"message": "Deposit with ShapeShift"
},
"depositShapeShiftExplainer": {
"message": "If you own other cryptocurrencies, you can trade and deposit Ether directly into your MetaMask wallet. No Account Needed."
},
"detailsCaps": {
"message": "DETAILS"
},
"directDeposit": {
"message": "Direct Deposit"
},
"directDepositEther": {
"message": "Directly Deposit Ether"
},
"directDepositEtherExplainer": {
"message": "If you already have some Ether, the quickest way to get Ether in your new wallet by direct deposit."
},
"done": {
"message": "Done"
},
"editAccountName": {
"message": "Edit Account Name"
},
"editCaps": {
"message": "EDIT"
},
"encryptNewDen": {
"message": "Encrypt your new DEN"
},
"enterPassword": {
"message": "Enter password"
},
"etherscanView": {
"message": "View account on Etherscan"
},
"exchangeRate": {
"message": "Exchange Rate"
},
"exportPrivateKey": {
"message": "Export Private Key"
},
"exportPrivateKeyLower": {
"message": "Export private key"
},
"exportPrivateKeyWarning": {
"message": "Export private keys at your own risk."
},
"failed": {
"message": "Failed"
},
"fileImportFail": {
"message": "File import not working? Click here!"
},
"from": {
"message": "From"
},
"fromShapeShift": {
"message": "From ShapeShift"
},
"gasFee": {
"message": "Gas Fee"
},
"gasFeeSpecific": {
"message": "Gas fee:"
},
"gasLimit": {
"message": "Gas Limit"
@ -73,103 +226,331 @@
"gasLimitCalculation": {
"message": "We calculate the suggested gas limit based on network success rates."
},
"gasLimitRequired": {
"message": "Gas Limit Required"
},
"gasLimitTooLow": {
"message": "Gas limit must be at least 21000"
},
"gasPrice": {
"message": "Gas Price (GWEI)"
},
"gasPriceCalculation": {
"message": "We calculate the suggested gas prices based on network success rates."
},
"customGas": {
"message": "Customize Gas"
"gasPriceRequired": {
"message": "Gas Price Required"
},
"balanceIsInsufficientGas": {
"message": "Insufficient balance for current gas total"
"getEther": {
"message": "Get Ether"
},
"gasLimitTooLow": {
"message": "Gas limit must be at least 21000"
"here": {
"message": "here"
},
"editButton": {
"message": "Edit"
"hideCaps": {
"message": "HIDE"
},
"hideToken": {
"message": "Hide Token"
},
"hideTokenPrompt": {
"message": "Hide Token?"
},
"howToDeposit": {
"message": "How would you like to deposit Ether?"
},
"import": {
"message": "Import"
},
"importAccount": {
"message": "Import Account"
},
"importAnAccount": {
"message": "Import an account"
},
"importCaps": {
"message": "IMPORT"
},
"importDen": {
"message": "Import Existing DEN"
},
"importedCaps": {
"message": "IMPORTED"
},
"infoHelp": {
"message": "Info & Help"
},
"invalidAddress": {
"message": "Invalid address"
},
"invalidGasParams": {
"message": "Invalid Gas Parameters"
},
"invalidInput": {
"message": "Invalid input."
},
"invalidRequest": {
"message": "Invalid Request"
},
"kovan": {
"message": "Kovan Test Network"
},
"limit": {
"message": "Limit"
},
"loading": {
"message": "Loading..."
},
"loadingTokens": {
"message": "Loading Tokens..."
},
"localhost": {
"message": "Localhost 8545"
},
"logout": {
"message": "Log out"
},
"looseCaps": {
"message": "LOOSE"
},
"addToken": "Add Token",
"exportPrivateKey": "Export Private Key",
"copyAddress": "Copy Address to clipboard",
"etherscanView": "View account on Etherscan",
"qrCode": "Show QR Code",
"accDetails": "Account Details",
"networks": "Networks",
"defaultNetwork": "The default network for Ether transactions is Main Net.",
"mainnet": "Main Ethereum Network",
"unknownNetwork": "Unknown Private Network",
"rinkeby": "Rinkeby Test Network",
"kovan": "Kovan Test Network",
"ropsten": "Ropsten Test Network",
"localhost": "Localhost 8545",
"customRPC": "Custom RPC",
"hideToken": "Hide Token",
"copiedClipboard": "Copied to Clipboard",
"detailsCaps": "DETAILS",
"sendButton": "SEND",
"depositButton": "DEPOSIT",
"notStarted": "Not Started",
"noTransactions": "No Transactions",
"contractPublished": "Contract Published",
"noTransactionHistory": "No transaction history.",
"warning": "Warning",
"failed": "Failed",
"rejected": "Rejected",
"sigRequested": "Signature Requested",
"yourSigRequested": "Your signature is being requested",
"balance": "Balance:",
"retryWithMoreGas": "Retry with a higher gas price here",
"takesTooLong": "Taking too long?",
"transactionNumber": "Transaction Number",
"loadingTokens": "Loading Tokens...",
"troubleTokenBalances": "We had trouble loading your token balances. You can view them ",
"here": "here",
"message": "Message",
"signNotice": "Signing this message can have \ndangerous side effects. Only sign messages from \nsites you fully trust with your entire account.\n This dangerous method will be removed in a future version. ",
"youSign": "You are signing:",
"conversionProgress": "Conversion in progress",
"noDeposits": "No deposits received",
"fromShapeShift": "From ShapeShift",
"invalidRequest": "Invalid Request",
"status": "Status",
"limit": "Limit",
"exchangeRate": "Exchange Rate",
"min": "Minimum",
"available": "Available",
"unavailable": "Unavailable",
"depositBTC": "Deposit your BTC to the address below:",
"deposit": "Deposit",
"receive": "Receive",
"refundAddress": "Your Refund Address",
"buyButton": "Buy",
"signMessage": "Sign Message",
"youSignCaps": "YOU ARE SIGNING",
"messageCaps": "MESSAGE",
"readMore": "Read more here.",
"cancel": "Cancel",
"sign": "Sign",
"accept": "Accept",
"attemptingConnect": "Attempting to connect to blockchain.",
"privateNetwork": "Private Network",
"invalidInput": "Invalid input.",
"noAddressForName": "No address has been set for this name.",
"clickCopy": "Click to Copy",
"copyButton": " Copy ",
"copiedButton": "Copied",
"copy": "Copy",
"copiedExclamation": "Copied!",
"continueToCoinbase": "Continue to Coinbase",
"depositEth": "Deposit Eth",
"selectService": "Select Service",
"unknownNetworkId": "Unknown network ID",
"borrowDharma": "Borrow With Dharma (Beta)",
"exportPrivateKeyWarning": "Export private keys at your own risk.",
"confirmPasswordSmall": "confirm password",
"submit": "Submit",
"mainnet": {
"message": "Main Ethereum Network"
},
"message": {
"message": "Message"
},
"messageCaps": {
"message": "MESSAGE"
},
"min": {
"message": "Minimum"
},
"myAccounts": {
"message": "My Accounts"
},
"needEtherInWallet": {
"message": "To interact with decentralized applications using MetaMask, youll need Ether in your wallet."
},
"needImportFile": {
"message": "You must select a file to import."
},
"needImportPassword": {
"message": "You must enter a password for the selected file."
},
"networks": {
"message": "Networks"
},
"newAccount": {
"message": "New Account"
},
"newContract": {
"message": "New Contract"
},
"newPassword": {
"message": "New Password (min 8 chars)"
},
"newRecipient": {
"message": "New Recipient"
},
"next": {
"message": "Next"
},
"noAddressForName": {
"message": "No address has been set for this name."
},
"noDeposits": {
"message": "No deposits received"
},
"noTransactionHistory": {
"message": "No transaction history."
},
"noTransactions": {
"message": "No Transactions"
},
"notStarted": {
"message": "Not Started"
},
"oldUI": {
"message": "Old UI"
},
"oldUIMessage": {
"message": "You have returned to the old UI. You can switch back to the New UI through the option in the top right dropdown menu."
},
"or": {
"message": "or"
},
"passwordMismatch": {
"message": "passwords don't match"
},
"passwordShort": {
"message": "password not long enough"
},
"pastePrivateKey": {
"message": "Paste your private key string here:"
},
"pasteSeed": {
"message": "Paste your seed phrase here!"
},
"privateKeyWarning": {
"message": "Warning: Never disclose this key. Anyone with your private keys can take steal any assets held in your account."
},
"privateNetwork": {
"message": "Private Network"
},
"qrCode": {
"message": "Show QR Code"
},
"readdToken": {
"message": "You can add this token back in the future by going go to “Add token” in your accounts options menu."
},
"readMore": {
"message": "Read more here."
},
"receive": {
"message": "Receive"
},
"recipientAddress": {
"message": "Recipient Address"
},
"refundAddress": {
"message": "Your Refund Address"
},
"rejected": {
"message": "Rejected"
},
"required": {
"message": "Required"
},
"retryWithMoreGas": {
"message": "Retry with a higher gas price here"
},
"revert": {
"message": "Revert"
},
"rinkeby": {
"message": "Rinkeby Test Network"
},
"ropsten": {
"message": "Ropsten Test Network"
},
"sampleAccountName": {
"message": "E.g. My new account"
},
"saveCaps": {
"message": "SAVE"
},
"selectService": {
"message": "Select Service"
},
"sendButton": {
"message": "SEND"
},
"sendTokens": {
"message": "Send Tokens"
},
"sendTokensAnywhere": {
"message": "Send Tokens to anyone with an Ethereum account"
},
"settings": {
"message": "Settings"
},
"shapeshiftBuy": {
"message": "Buy with Shapeshift"
},
"showPrivateKeys": {
"message": "Show Private Keys"
},
"sign": {
"message": "Sign"
},
"signCaps": {
"message": "SIGN"
},
"signMessage": {
"message": "Sign Message"
},
"signNotice": {
"message": "Signing this message can have \ndangerous side effects. Only sign messages from \nsites you fully trust with your entire account.\n This dangerous method will be removed in a future version. "
},
"sigRequested": {
"message": "Signature Requested"
},
"status": {
"message": "Status"
},
"submit": {
"message": "Submit"
},
"takesTooLong": {
"message": "Taking too long?"
},
"testFaucet": {
"message": "Test Faucet"
},
"to": {
"message": "To"
},
"tokenBalance": {
"message": "Your Token Balance is:"
},
"toSpecific": {
"message": "To:"
},
"total": {
"message": "Total"
},
"transactionMemo": {
"message": "Transaction memo (optional)"
},
"transactionNumber": {
"message": "Transaction Number"
},
"transfers": {
"message": "Transfers"
},
"troubleTokenBalances": {
"message": "We had trouble loading your token balances. You can view them "
},
"typePassword": {
"message": "Type Your Password"
},
"uiWelcome": {
"message": "Welcome to the New UI (Beta)"
},
"uiWelcomeMessage": {
"message": "You are now using the new Metamask UI. Take a look around, try out new features like sending tokens, and let us know if you have any issues."
},
"unavailable": {
"message": "Unavailable"
},
"unknown": {
"message": "Unknown"
},
"unknownNetwork": {
"message": "Unknown Private Network"
},
"unknownNetworkId": {
"message": "Unknown network ID"
},
"usedByClients": {
"message": "Used by a variety of different clients"
},
"viewAccount": {
"message": "View Account"
},
"warning": {
"message": "Warning"
},
"whatsThis": {
"message": "What's this?"
},
"yourSigRequested": {
"message": "Your signature is being requested"
},
"youSign": {
"message": "You are signing:"
},
"youSignCaps": {
"message": "YOU ARE SIGNING"
}
}

View File

@ -26,8 +26,8 @@ JsonImportSubview.prototype.render = function () {
return (
h('div.new-account-import-form__json', [
h('p', 'Used by a variety of different clients'),
h('a.warning', { href: HELP_LINK, target: '_blank' }, 'File import not working? Click here!'),
h('p', t('usedByClients')),
h('a.warning', { href: HELP_LINK, target: '_blank' }, t('fileImportFail')),
h(FileInput, {
readAs: 'text',
@ -42,7 +42,7 @@ JsonImportSubview.prototype.render = function () {
h('input.new-account-import-form__input-password', {
type: 'password',
placeholder: 'Enter password',
placeholder: t('enterPassword'),
id: 'json-password-box',
onKeyPress: this.createKeyringOnEnter.bind(this),
}),
@ -52,13 +52,13 @@ JsonImportSubview.prototype.render = function () {
h('button.new-account-create-form__button-cancel', {
onClick: () => this.props.goHome(),
}, [
'CANCEL',
t('cancelCaps'),
]),
h('button.new-account-create-form__button-create', {
onClick: () => this.createNewKeychain.bind(this),
}, [
'IMPORT',
t('importCaps'),
]),
]),
@ -84,7 +84,7 @@ JsonImportSubview.prototype.createNewKeychain = function () {
const { fileContents } = state
if (!fileContents) {
const message = 'You must select a file to import.'
const message = t('needImportFile')
return this.props.dispatch(actions.displayWarning(message))
}
@ -92,7 +92,7 @@ JsonImportSubview.prototype.createNewKeychain = function () {
const password = passwordInput.value
if (!password) {
const message = 'You must enter a password for the selected file.'
const message = t('needImportPassword')
return this.props.dispatch(actions.displayWarning(message))
}

View File

@ -32,7 +32,7 @@ PrivateKeyImportView.prototype.render = function () {
return (
h('div.new-account-import-form__private-key', [
h('span.new-account-create-form__instruction', 'Paste your private key string here:'),
h('span.new-account-create-form__instruction', t('pastePrivateKey')),
h('input.new-account-import-form__input-password', {
type: 'password',
@ -45,13 +45,13 @@ PrivateKeyImportView.prototype.render = function () {
h('button.new-account-create-form__button-cancel', {
onClick: () => goHome(),
}, [
'CANCEL',
t('cancelCaps'),
]),
h('button.new-account-create-form__button-create', {
onClick: () => this.createNewKeychain(),
}, [
'IMPORT',
t('importCaps'),
]),
]),

View File

@ -20,11 +20,10 @@ SeedImportSubview.prototype.render = function () {
style: {
},
}, [
`Paste your seed phrase here!`,
t('pasteSeed'),
h('textarea'),
h('br'),
h('button', 'Submit'),
h('button', t('submit')),
])
)
}

View File

@ -21,13 +21,13 @@ class NewAccountCreateForm extends Component {
return h('div.new-account-create-form', [
h('div.new-account-create-form__input-label', {}, [
'Account Name',
t('accountName'),
]),
h('div.new-account-create-form__input-wrapper', {}, [
h('input.new-account-create-form__input', {
value: this.state.newAccountName,
placeholder: 'E.g. My new account',
placeholder: t('sampleAccountName'),
onChange: event => this.setState({ newAccountName: event.target.value }),
}, []),
]),
@ -37,13 +37,13 @@ class NewAccountCreateForm extends Component {
h('button.new-account-create-form__button-cancel', {
onClick: () => this.props.goHome(),
}, [
'CANCEL',
t('cancelCaps'),
]),
h('button.new-account-create-form__button-create', {
onClick: () => this.props.createAccount(newAccountName),
}, [
'CREATE',
t('createCaps'),
]),
]),

View File

@ -45,7 +45,7 @@ AccountDetailsModal.prototype.render = function () {
h('div.new-account__header', [
h('div.new-account__title', 'New Account'),
h('div.new-account__title', t('newAccount')),
h('div.new-account__tabs', [
@ -55,7 +55,7 @@ AccountDetailsModal.prototype.render = function () {
'new-account__tabs__unselected cursor-pointer': displayedForm !== 'CREATE',
}),
onClick: () => displayForm('CREATE'),
}, 'Create'),
}, t('createDen')),
h('div.new-account__tabs__tab', {
className: classnames('new-account__tabs__tab', {
@ -63,7 +63,7 @@ AccountDetailsModal.prototype.render = function () {
'new-account__tabs__unselected cursor-pointer': displayedForm !== 'IMPORT',
}),
onClick: () => displayForm('IMPORT'),
}, 'Import'),
}, t('import')),
]),

View File

@ -284,11 +284,11 @@ CustomizeGasModal.prototype.render = function () {
h('div.send-v2__customize-gas__buttons', [
h('div.send-v2__customize-gas__cancel', {
onClick: this.props.hideModal,
}, [t('cancelButton')]),
}, [t('cancelCaps')]),
h(`div.send-v2__customize-gas__save${error ? '__error' : ''}`, {
onClick: () => !error && this.save(gasPrice, gasLimit, gasTotal),
}, [t('saveButton')]),
}, [t('saveCaps')]),
]),
]),

View File

@ -129,7 +129,7 @@ class AccountDropdowns extends Component {
actions.showEditAccountModal(identity)
},
}, [
t('editButton'),
t('editCaps'),
]),
]),

View File

@ -64,12 +64,12 @@ AccountDetailsModal.prototype.render = function () {
h('button.btn-clear.account-modal__button', {
onClick: () => global.platform.openWindow({ url: genAccountLink(address, network) }),
}, 'View account on Etherscan'),
}, t('etherscanView')),
// Holding on redesign for Export Private Key functionality
h('button.btn-clear.account-modal__button', {
onClick: () => showExportPrivateKeyModal(),
}, 'Export private key'),
}, t('exportPrivateKeyLower')),
])
}

View File

@ -59,7 +59,7 @@ AccountModalContainer.prototype.render = function () {
h('i.fa.fa-angle-left.fa-lg'),
h('span.account-modal-back__text', ' Back'),
h('span.account-modal-back__text', ' ' + t('back')),
]),

View File

@ -56,15 +56,15 @@ BuyOptions.prototype.render = function () {
}, [
h('div.buy-modal-content-title', {
style: {},
}, 'Transfers'),
h('div', {}, 'How would you like to deposit Ether?'),
}, t('transfers')),
h('div', {}, t('howToDeposit')),
]),
h('div.buy-modal-content-options.flex-column.flex-center', {}, [
isTestNetwork
? this.renderModalContentOption(networkName, 'Test Faucet', () => toFaucet(network))
: this.renderModalContentOption('Coinbase', 'Deposit with Fiat', () => toCoinbase(address)),
? this.renderModalContentOption(networkName, t('testFaucet'), () => toFaucet(network))
: this.renderModalContentOption('Coinbase', t('depositFiat'), () => toCoinbase(address)),
// h('div.buy-modal-content-option', {}, [
// h('div.buy-modal-content-option-title', {}, 'Shapeshift'),
@ -72,8 +72,8 @@ BuyOptions.prototype.render = function () {
// ]),,
this.renderModalContentOption(
'Direct Deposit',
'Deposit from another account',
t('directDeposit'),
t('depositFromAccount'),
() => this.goToAccountDetailsModal()
),
@ -84,7 +84,7 @@ BuyOptions.prototype.render = function () {
background: 'white',
},
onClick: () => { this.props.hideModal() },
}, h('div.buy-modal-content-footer#buy-modal-content-footer-text', {}, 'Cancel')),
}, h('div.buy-modal-content-footer#buy-modal-content-footer-text', {}, t('cancel'))),
]),
])
}

View File

@ -6,16 +6,13 @@ const actions = require('../../actions')
const networkNames = require('../../../../app/scripts/config.js').networkNames
const ShapeshiftForm = require('../shapeshift-form')
const DIRECT_DEPOSIT_ROW_TITLE = 'Directly Deposit Ether'
const DIRECT_DEPOSIT_ROW_TEXT = `If you already have some Ether, the quickest way to get Ether in
your new wallet by direct deposit.`
const COINBASE_ROW_TITLE = 'Buy on Coinbase'
const COINBASE_ROW_TEXT = `Coinbase is the worlds most popular way to buy and sell bitcoin,
ethereum, and litecoin.`
const SHAPESHIFT_ROW_TITLE = 'Deposit with ShapeShift'
const SHAPESHIFT_ROW_TEXT = `If you own other cryptocurrencies, you can trade and deposit Ether
directly into your MetaMask wallet. No Account Needed.`
const FAUCET_ROW_TITLE = 'Test Faucet'
const DIRECT_DEPOSIT_ROW_TITLE = t('directDepositEther')
const DIRECT_DEPOSIT_ROW_TEXT = t('directDepositEtherExplainer')
const COINBASE_ROW_TITLE = t('buyCoinbase')
const COINBASE_ROW_TEXT = t('buyCoinbaseExplainer')
const SHAPESHIFT_ROW_TITLE = t('depositShapeShift')
const SHAPESHIFT_ROW_TEXT = t('depositShapeShiftExplainer')
const FAUCET_ROW_TITLE = t('testFaucet')
const facuetRowText = networkName => `Get Ether from a faucet for the ${networkName}`
function mapStateToProps (state) {
@ -110,10 +107,10 @@ DepositEtherModal.prototype.render = function () {
h('div.deposit-ether-modal__header', [
h('div.deposit-ether-modal__header__title', ['Deposit Ether']),
h('div.deposit-ether-modal__header__title', [t('depositEther')]),
h('div.deposit-ether-modal__header__description', [
'To interact with decentralized applications using MetaMask, youll need Ether in your wallet.',
t('needEtherInWallet'),
]),
h('div.deposit-ether-modal__header__close', {
@ -131,7 +128,7 @@ DepositEtherModal.prototype.render = function () {
logo: h('img.deposit-ether-modal__buy-row__eth-logo', { src: '../../../images/eth_logo.svg' }),
title: DIRECT_DEPOSIT_ROW_TITLE,
text: DIRECT_DEPOSIT_ROW_TEXT,
buttonLabel: 'View Account',
buttonLabel: t('viewAccount'),
onButtonClick: () => this.goToAccountDetailsModal(),
hide: buyingWithShapeshift,
}),
@ -140,7 +137,7 @@ DepositEtherModal.prototype.render = function () {
logo: h('i.fa.fa-tint.fa-2x'),
title: FAUCET_ROW_TITLE,
text: facuetRowText(networkName),
buttonLabel: 'Get Ether',
buttonLabel: t('getEther'),
onButtonClick: () => toFaucet(network),
hide: !isTestNetwork || buyingWithShapeshift,
}),
@ -151,7 +148,7 @@ DepositEtherModal.prototype.render = function () {
}),
title: COINBASE_ROW_TITLE,
text: COINBASE_ROW_TEXT,
buttonLabel: 'Continue to Coinbase',
buttonLabel: t('continueToCoinbase'),
onButtonClick: () => toCoinbase(address),
hide: isTestNetwork || buyingWithShapeshift,
}),
@ -162,7 +159,7 @@ DepositEtherModal.prototype.render = function () {
}),
title: SHAPESHIFT_ROW_TITLE,
text: SHAPESHIFT_ROW_TEXT,
buttonLabel: 'Buy with Shapeshift',
buttonLabel: t('shapeshiftBuy'),
onButtonClick: () => this.setState({ buyingWithShapeshift: true }),
hide: isTestNetwork,
hideButton: buyingWithShapeshift,

View File

@ -50,7 +50,7 @@ EditAccountNameModal.prototype.render = function () {
]),
h('div.edit-account-name-modal-title', {
}, ['Edit Account Name']),
}, [t('editAccountName')]),
h('input.edit-account-name-modal-input', {
placeholder: identity.name,
@ -69,7 +69,7 @@ EditAccountNameModal.prototype.render = function () {
},
disabled: this.state.inputText.length === 0,
}, [
'SAVE',
t('saveCaps'),
]),
]),

View File

@ -48,8 +48,8 @@ ExportPrivateKeyModal.prototype.exportAccountAndGetPrivateKey = function (passwo
ExportPrivateKeyModal.prototype.renderPasswordLabel = function (privateKey) {
return h('span.private-key-password-label', privateKey
? 'This is your private key (click to copy)'
: 'Type Your Password'
? t('copyPrivateKey')
: t('typePassword')
)
}
@ -86,8 +86,8 @@ ExportPrivateKeyModal.prototype.renderButtons = function (privateKey, password,
),
(privateKey
? this.renderButton('btn-clear export-private-key__button', () => hideModal(), 'Done')
: this.renderButton('btn-clear export-private-key__button', () => this.exportAccountAndGetPrivateKey(this.state.password, address), 'Confirm')
? this.renderButton('btn-clear export-private-key__button', () => hideModal(), t('done'))
: this.renderButton('btn-clear export-private-key__button', () => this.exportAccountAndGetPrivateKey(this.state.password, address), t('confirm'))
),
])
@ -120,7 +120,7 @@ ExportPrivateKeyModal.prototype.render = function () {
h('div.account-modal-divider'),
h('span.modal-body-title', 'Show Private Keys'),
h('span.modal-body-title', t('showPrivateKeys')),
h('div.private-key-password', {}, [
this.renderPasswordLabel(privateKey),
@ -130,10 +130,7 @@ ExportPrivateKeyModal.prototype.render = function () {
!warning ? null : h('span.private-key-password-error', warning),
]),
h('div.private-key-password-warning', `Warning: Never disclose this key.
Anyone with your private keys can take steal any assets held in your
account.`
),
h('div.private-key-password-warning', t('privateKeyWarning')),
this.renderButtons(privateKey, this.state.password, address, hideModal),

View File

@ -41,7 +41,7 @@ HideTokenConfirmationModal.prototype.render = function () {
h('div.hide-token-confirmation__container', {
}, [
h('div.hide-token-confirmation__title', {}, [
'Hide Token?',
t('hideTokenPrompt'),
]),
h(Identicon, {
@ -54,19 +54,19 @@ HideTokenConfirmationModal.prototype.render = function () {
h('div.hide-token-confirmation__symbol', {}, symbol),
h('div.hide-token-confirmation__copy', {}, [
'You can add this token back in the future by going go to “Add token” in your accounts options menu.',
t('readdToken'),
]),
h('div.hide-token-confirmation__buttons', {}, [
h('button.btn-cancel.hide-token-confirmation__button', {
onClick: () => hideModal(),
}, [
'CANCEL',
t('cancelCaps'),
]),
h('button.btn-clear.hide-token-confirmation__button', {
onClick: () => hideToken(address),
}, [
'HIDE',
t('hideCaps'),
]),
]),
]),

View File

@ -169,9 +169,8 @@ const MODALS = {
BETA_UI_NOTIFICATION_MODAL: {
contents: [
h(NotifcationModal, {
header: 'Welcome to the New UI (Beta)',
message: `You are now using the new Metamask UI. Take a look around, try out new features like sending tokens,
and let us know if you have any issues.`,
header: t('uiWelcome'),
message: t('uiWelcomeMessage'),
}),
],
mobileModalStyle: {
@ -187,9 +186,8 @@ const MODALS = {
OLD_UI_NOTIFICATION_MODAL: {
contents: [
h(NotifcationModal, {
header: 'Old UI',
message: `You have returned to the old UI. You can switch back to the New UI through the option in the top
right dropdown menu.`,
header: t('oldUI'),
message: t('oldUIMessage'),
}),
],
mobileModalStyle: {

View File

@ -22,7 +22,7 @@ class NewAccountModal extends Component {
h('div.new-account-modal-wrapper', {
}, [
h('div.new-account-modal-header', {}, [
'New Account',
t('newAccount'),
]),
h('div.modal-close-x', {
@ -30,19 +30,19 @@ class NewAccountModal extends Component {
}),
h('div.new-account-modal-content', {}, [
'Account Name',
t('accountName'),
]),
h('div.new-account-input-wrapper', {}, [
h('input.new-account-input', {
value: this.state.newAccountName,
placeholder: 'E.g. My new account',
placeholder: t('sampleAccountName'),
onChange: event => this.setState({ newAccountName: event.target.value }),
}, []),
]),
h('div.new-account-modal-content.after-input', {}, [
'or',
t('or'),
]),
h('div.new-account-modal-content.after-input.pointer', {
@ -50,13 +50,13 @@ class NewAccountModal extends Component {
this.props.hideModal()
this.props.showImportPage()
},
}, 'Import an account'),
}, t('importAnAccount')),
h('div.new-account-modal-content.button', {}, [
h('button.btn-clear', {
onClick: () => this.props.createAccount(newAccountName),
}, [
'SAVE',
t('saveCaps'),
]),
]),
]),

View File

@ -200,7 +200,7 @@ ConfirmDeployContract.prototype.renderGasFee = function () {
return (
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'Gas Fee' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('gasFee') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', `${fiatGas} ${currentCurrency.toUpperCase()}`),
@ -239,8 +239,8 @@ ConfirmDeployContract.prototype.renderTotalPlusGas = function () {
return (
h('section.flex-row.flex-center.confirm-screen-total-box ', [
h('div.confirm-screen-section-column', [
h('span.confirm-screen-label', [ 'Total ' ]),
h('div.confirm-screen-total-box__subtitle', [ 'Amount + Gas' ]),
h('span.confirm-screen-label', [ t('total') + ' ' ]),
h('div.confirm-screen-total-box__subtitle', [ t('amountPlusGas') ]),
]),
h('div.confirm-screen-section-column', [
@ -274,7 +274,7 @@ ConfirmDeployContract.prototype.render = function () {
h('button.confirm-screen-back-button', {
onClick: () => backToAccountDetail(selectedAddress),
}, 'BACK'),
h('div.confirm-screen-title', 'Confirm Contract'),
h('div.confirm-screen-title', t('confirmContract')),
h('div.confirm-screen-header-tip'),
]),
h('div.flex-row.flex-center.confirm-screen-identicons', [
@ -292,7 +292,7 @@ ConfirmDeployContract.prototype.render = function () {
h('i.fa.fa-arrow-right.fa-lg'),
h('div.confirm-screen-account-wrapper', [
h('i.fa.fa-file-text-o'),
h('span.confirm-screen-account-name', 'New Contract'),
h('span.confirm-screen-account-name', t('newContract')),
h('span.confirm-screen-account-number', ' '),
]),
]),
@ -310,7 +310,7 @@ ConfirmDeployContract.prototype.render = function () {
h('div.confirm-screen-rows', [
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'From' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('from') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', fromName),
h('div.confirm-screen-row-detail', `...${fromAddress.slice(fromAddress.length - 4)}`),
@ -318,9 +318,9 @@ ConfirmDeployContract.prototype.render = function () {
]),
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'To' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('to') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', 'New Contract'),
h('div.confirm-screen-row-info', t('newContract')),
]),
]),
@ -337,10 +337,10 @@ ConfirmDeployContract.prototype.render = function () {
// Cancel Button
h('div.cancel.btn-light.confirm-screen-cancel-button', {
onClick: (event) => this.cancel(event, txMeta),
}, 'CANCEL'),
}, t('cancelCaps')),
// Accept Button
h('button.confirm-screen-confirm-button', ['CONFIRM']),
h('button.confirm-screen-confirm-button', [t('confirmCaps')]),
]),
])

View File

@ -165,7 +165,7 @@ ConfirmSendEther.prototype.getData = function () {
},
to: {
address: txParams.to,
name: identities[txParams.to] ? identities[txParams.to].name : 'New Recipient',
name: identities[txParams.to] ? identities[txParams.to].name : t('newRecipient'),
},
memo: txParams.memo || '',
gasFeeInFIAT,
@ -268,7 +268,7 @@ ConfirmSendEther.prototype.render = function () {
h('div.confirm-screen-rows', [
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'From' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('from') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', fromName),
h('div.confirm-screen-row-detail', `...${fromAddress.slice(fromAddress.length - 4)}`),
@ -276,7 +276,7 @@ ConfirmSendEther.prototype.render = function () {
]),
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'To' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('to') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', toName),
h('div.confirm-screen-row-detail', `...${toAddress.slice(toAddress.length - 4)}`),
@ -284,7 +284,7 @@ ConfirmSendEther.prototype.render = function () {
]),
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'Gas Fee' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('gasFee') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', `${gasFeeInFIAT} ${currentCurrency.toUpperCase()}`),
@ -295,8 +295,8 @@ ConfirmSendEther.prototype.render = function () {
h('section.flex-row.flex-center.confirm-screen-total-box ', [
h('div.confirm-screen-section-column', [
h('span.confirm-screen-label', [ 'Total ' ]),
h('div.confirm-screen-total-box__subtitle', [ 'Amount + Gas' ]),
h('span.confirm-screen-label', [ t('total') + ' ' ]),
h('div.confirm-screen-total-box__subtitle', [ t('amountPlusGas') ]),
]),
h('div.confirm-screen-section-column', [
@ -396,10 +396,10 @@ ConfirmSendEther.prototype.render = function () {
clearSend()
this.cancel(event, txMeta)
},
}, 'CANCEL'),
}, t('cancelCaps')),
// Accept Button
h('button.confirm-screen-confirm-button', ['CONFIRM']),
h('button.confirm-screen-confirm-button', [t('confirmCaps')]),
]),
])
)
@ -414,7 +414,7 @@ ConfirmSendEther.prototype.onSubmit = function (event) {
if (valid && this.verifyGasParams()) {
this.props.sendTransaction(txMeta, event)
} else {
this.props.dispatch(actions.displayWarning('Invalid Gas Parameters'))
this.props.dispatch(actions.displayWarning(t('invalidGasParams')))
this.setState({ submitting: false })
}
}

View File

@ -133,7 +133,7 @@ ConfirmSendToken.prototype.getAmount = function () {
? +(sendTokenAmount * tokenExchangeRate * conversionRate).toFixed(2)
: null,
token: typeof value === 'undefined'
? 'Unknown'
? t('unknown')
: +sendTokenAmount.toFixed(decimals),
}
@ -204,7 +204,7 @@ ConfirmSendToken.prototype.getData = function () {
},
to: {
address: value,
name: identities[value] ? identities[value].name : 'New Recipient',
name: identities[value] ? identities[value].name : t('newRecipient'),
},
memo: txParams.memo || '',
}
@ -244,7 +244,7 @@ ConfirmSendToken.prototype.renderGasFee = function () {
return (
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'Gas Fee' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('gasFee') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', `${fiatGas} ${currentCurrency}`),
@ -266,8 +266,8 @@ ConfirmSendToken.prototype.renderTotalPlusGas = function () {
? (
h('section.flex-row.flex-center.confirm-screen-total-box ', [
h('div.confirm-screen-section-column', [
h('span.confirm-screen-label', [ 'Total ' ]),
h('div.confirm-screen-total-box__subtitle', [ 'Amount + Gas' ]),
h('span.confirm-screen-label', [ t('total') + ' ' ]),
h('div.confirm-screen-total-box__subtitle', [ t('amountPlusGas') ]),
]),
h('div.confirm-screen-section-column', [
@ -279,8 +279,8 @@ ConfirmSendToken.prototype.renderTotalPlusGas = function () {
: (
h('section.flex-row.flex-center.confirm-screen-total-box ', [
h('div.confirm-screen-section-column', [
h('span.confirm-screen-label', [ 'Total ' ]),
h('div.confirm-screen-total-box__subtitle', [ 'Amount + Gas' ]),
h('span.confirm-screen-label', [ t('total') + ' ' ]),
h('div.confirm-screen-total-box__subtitle', [ t('amountPlusGas') ]),
]),
h('div.confirm-screen-section-column', [
@ -316,7 +316,7 @@ ConfirmSendToken.prototype.render = function () {
h('h3.flex-center.confirm-screen-header', [
h('button.btn-clear.confirm-screen-back-button', {
onClick: () => editTransaction(txMeta),
}, 'EDIT'),
}, t('editCaps')),
h('div.confirm-screen-title', 'Confirm Transaction'),
h('div.confirm-screen-header-tip'),
]),
@ -359,7 +359,7 @@ ConfirmSendToken.prototype.render = function () {
h('div.confirm-screen-rows', [
h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'From' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('from') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', fromName),
h('div.confirm-screen-row-detail', `...${fromAddress.slice(fromAddress.length - 4)}`),
@ -367,7 +367,7 @@ ConfirmSendToken.prototype.render = function () {
]),
toAddress && h('section.flex-row.flex-center.confirm-screen-row', [
h('span.confirm-screen-label.confirm-screen-section-column', [ 'To' ]),
h('span.confirm-screen-label.confirm-screen-section-column', [ t('to') ]),
h('div.confirm-screen-section-column', [
h('div.confirm-screen-row-info', toName),
h('div.confirm-screen-row-detail', `...${toAddress.slice(toAddress.length - 4)}`),
@ -387,10 +387,10 @@ ConfirmSendToken.prototype.render = function () {
// Cancel Button
h('div.cancel.btn-light.confirm-screen-cancel-button', {
onClick: (event) => this.cancel(event, txMeta),
}, 'CANCEL'),
}, t('cancelCaps')),
// Accept Button
h('button.confirm-screen-confirm-button', ['CONFIRM']),
h('button.confirm-screen-confirm-button', [t('confirmCaps')]),
]),
@ -407,7 +407,7 @@ ConfirmSendToken.prototype.onSubmit = function (event) {
if (valid && this.verifyGasParams()) {
this.props.sendTransaction(txMeta, event)
} else {
this.props.dispatch(actions.displayWarning('Invalid Gas Parameters'))
this.props.dispatch(actions.displayWarning(t('invalidGasParams')))
this.setState({ submitting: false })
}
}

View File

@ -35,10 +35,10 @@ PendingMsg.prototype.render = function () {
h('.flex-row.flex-space-around', [
h('button', {
onClick: state.cancelTypedMessage,
}, t('cancelButton')),
}, t('cancelCaps')),
h('button', {
onClick: state.signTypedMessage,
}, t('signButton')),
}, t('signCaps')),
]),
])

View File

@ -126,14 +126,14 @@ SendTokenScreen.prototype.validate = function () {
const amount = Number(stringAmount)
const errors = {
to: !to ? 'Required' : null,
amount: !amount ? 'Required' : null,
gasPrice: !gasPrice ? 'Gas Price Required' : null,
gasLimit: !gasLimit ? 'Gas Limit Required' : null,
to: !to ? t('required') : null,
amount: !amount ? t('required') : null,
gasPrice: !gasPrice ? t('gasPriceRequired') : null,
gasLimit: !gasLimit ? t('gasLimitRequired') : null,
}
if (to && !isValidAddress(to)) {
errors.to = 'Invalid address'
errors.to = t('invalidAddress')
}
const isValid = Object.entries(errors).every(([key, value]) => value === null)
@ -233,11 +233,11 @@ SendTokenScreen.prototype.renderToAddressInput = function () {
'send-screen-input-wrapper--error': errorMessage,
}),
}, [
h('div', ['To:']),
h('div', [t('toSpecific')]),
h('input.large-input.send-screen-input', {
name: 'address',
list: 'addresses',
placeholder: 'Address',
placeholder: t('address'),
value: to,
onChange: e => this.setState({
to: e.target.value,
@ -355,8 +355,8 @@ SendTokenScreen.prototype.renderGasInput = function () {
}),
h('div.send-screen-gas-labels', {}, [
h('span', [ h('i.fa.fa-bolt'), 'Gas fee:']),
h('span', ['What\'s this?']),
h('span', [ h('i.fa.fa-bolt'), t('gasFeeSpecific')]),
h('span', [t('whatsThis')]),
]),
h('div.large-input.send-screen-gas-input', [
h(GasFeeDisplay, {
@ -370,7 +370,7 @@ SendTokenScreen.prototype.renderGasInput = function () {
h(
'div.send-screen-gas-input-customize',
{ onClick: () => this.setState({ isGasTooltipOpen: !isGasTooltipOpen }) },
['Customize']
[t('customize')]
),
]),
h('div.send-screen-input-wrapper__error-message', [
@ -381,7 +381,7 @@ SendTokenScreen.prototype.renderGasInput = function () {
SendTokenScreen.prototype.renderMemoInput = function () {
return h('div.send-screen-input-wrapper', [
h('div', {}, ['Transaction memo (optional)']),
h('div', {}, [t('transactionMemo')]),
h(
'input.large-input.send-screen-input',
{ onChange: e => this.setState({ memo: e.target.value }) }
@ -397,10 +397,10 @@ SendTokenScreen.prototype.renderButtons = function () {
h('button.send-token__button-next.btn-secondary', {
className: !isValid && 'send-screen__send-button__disabled',
onClick: () => isValid && this.submit(),
}, ['Next']),
}, [t('next')]),
h('button.send-token__button-cancel.btn-tertiary', {
onClick: () => backToAccountDetail(selectedAddress),
}, ['Cancel']),
}, [t('cancel')]),
])
}
@ -417,9 +417,9 @@ SendTokenScreen.prototype.render = function () {
diameter: 75,
address: selectedTokenAddress,
}),
h('div.send-token__title', ['Send Tokens']),
h('div.send-token__description', ['Send Tokens to anyone with an Ethereum account']),
h('div.send-token__balance-text', ['Your Token Balance is:']),
h('div.send-token__title', [t('sendTokens')]),
h('div.send-token__description', [t('sendTokensAnywhere')]),
h('div.send-token__balance-text', [t('tokenBalance')]),
h('div.send-token__token-balance', [
h(TokenBalance, { token: selectedToken, balanceOnly: true }),
]),

View File

@ -30,7 +30,7 @@ GasFeeDisplay.prototype.render = function () {
convertedPrefix: '$',
readOnly: true,
})
: h('div.currency-display', 'Loading...'),
: h('div.currency-display', t('loading')),
h('button.send-v2__sliders-icon-container', {
onClick,
@ -41,4 +41,3 @@ GasFeeDisplay.prototype.render = function () {
])
}

View File

@ -81,7 +81,7 @@ GasTooltip.prototype.render = function () {
'marginTop': '81px',
},
}, [
h('span.gas-tooltip-label', {}, ['Gas Limit']),
h('span.gas-tooltip-label', {}, [t('gasLimit')]),
h('i.fa.fa-info-circle'),
]),
h(InputNumber, {
@ -97,4 +97,3 @@ GasTooltip.prototype.render = function () {
]),
])
}

View File

@ -92,7 +92,7 @@ ToAutoComplete.prototype.render = function () {
return h('div.send-v2__to-autocomplete', {}, [
h('input.send-v2__to-autocomplete__input', {
placeholder: 'Recipient Address',
placeholder: t('recipientAddress'),
className: inError ? `send-v2__error-border` : '',
value: to,
onChange: event => onChange(event.target.value),
@ -111,4 +111,3 @@ ToAutoComplete.prototype.render = function () {
])
}

View File

@ -224,10 +224,10 @@ SignatureRequest.prototype.renderFooter = function () {
return h('div.request-signature__footer', [
h('button.request-signature__footer__cancel-button', {
onClick: cancel,
}, t('cancelButton')),
}, t('cancelCaps')),
h('button.request-signature__footer__sign-button', {
onClick: sign,
}, t('signButton')),
}, t('signCaps')),
])
}