From 3e5b6c880693f5d82408c5db41b57160585617e8 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 14:33:28 +0200 Subject: [PATCH 001/125] render coin visibility switcher --- .../WalletSettings/components/Coins/index.js | 104 ++++++++++++++++++ .../Wallet/views/WalletSettings/index.js | 4 + .../views/WalletSettings/index.messages.js | 8 ++ 3 files changed, 116 insertions(+) create mode 100644 src/views/Wallet/views/WalletSettings/components/Coins/index.js diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js new file mode 100644 index 00000000..57b57512 --- /dev/null +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -0,0 +1,104 @@ +/* @flow */ +import styled from 'styled-components'; +import React from 'react'; +import { FormattedMessage } from 'react-intl'; +import { FONT_SIZE } from 'config/variables'; + +import { Tooltip, Icon, icons as ICONS, colors, Switch, CoinLogo } from 'trezor-ui-components'; +import l10nMessages from '../../index.messages'; + +const Wrapper = styled.div` + display: flex; + flex-direction: column; +`; + +const Label = styled.div` + display: flex; + color: ${colors.TEXT_SECONDARY}; + align-items: center; +`; + +const Row = styled.div` + display: flex; + flex-direction: column; +`; + +const TooltipIcon = styled(Icon)` + margin-left: 6px; + cursor: pointer; +`; + +const Content = styled.div` + display: flex; + margin-top: 20px; + flex-direction: column; +`; + +const CoinRow = styled.div` + height: 50px; + align-items: center; + display: flex; + border-bottom: 1px solid ${colors.DIVIDER}; + color: ${colors.TEXT_PRIMARY}; + justify-content: space-between; + + &:first-child { + border-top: 1px solid ${colors.DIVIDER}; + } +`; + +const Left = styled.div` + display: flex; + align-items: center; +`; + +const Right = styled.div``; + +const Name = styled.div` + display: flex; + font-size: ${FONT_SIZE.BIG}; + color: ${colors.TEXT_PRIMARY}; +`; + +const LogoWrapper = styled.div` + display: flex; + width: 45px; + justify-content: center; + align-items: center; +`; + +const CoinsSettings = (props: Props) => ( + + + + + {props.networks + .filter(network => !network.isHidden) + .map(network => ( + + + + + + {network.name} + + + {}} checked /> + + + ))} + + + +); + +export default CoinsSettings; diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index e8c4a752..866b5a1a 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -17,6 +17,7 @@ import { import { FIAT_CURRENCIES } from 'config/app'; import { FONT_SIZE } from 'config/variables'; import l10nCommonMessages from 'views/common.messages'; +import Coins from './components/Coins'; import l10nMessages from './index.messages'; import type { Props } from './Container'; @@ -109,6 +110,9 @@ const WalletSettings = (props: Props) => ( /> +
+ +
diff --git a/src/views/Wallet/views/WalletSettings/index.messages.js b/src/views/Wallet/views/WalletSettings/index.messages.js index 43557498..abf718ee 100644 --- a/src/views/Wallet/views/WalletSettings/index.messages.js +++ b/src/views/Wallet/views/WalletSettings/index.messages.js @@ -16,6 +16,14 @@ const definedMessages: Messages = defineMessages({ id: 'TR_THE_CHANGES_ARE_SAVED', defaultMessage: 'The changes are saved automatically as they are made', }, + TR_VISIBLE_COINS: { + id: 'TR_VISIBLE_COINS', + defaultMessage: 'Visible coins', + }, + TR_VISIBLE_COINS_EXPLAINED: { + id: 'TR_VISIBLE_COINS_EXPLAINED', + defaultMessage: 'The changes are saved automatically as they are made', + }, }); export default definedMessages; From 0833d1597a395325b71d2896a3196a15d33428d9 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 14:36:41 +0200 Subject: [PATCH 002/125] remove tooltip --- .../views/WalletSettings/components/Coins/index.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 57b57512..d6a11abc 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -4,7 +4,7 @@ import React from 'react'; import { FormattedMessage } from 'react-intl'; import { FONT_SIZE } from 'config/variables'; -import { Tooltip, Icon, icons as ICONS, colors, Switch, CoinLogo } from 'trezor-ui-components'; +import { colors, Switch, CoinLogo } from 'trezor-ui-components'; import l10nMessages from '../../index.messages'; const Wrapper = styled.div` @@ -23,11 +23,6 @@ const Row = styled.div` flex-direction: column; `; -const TooltipIcon = styled(Icon)` - margin-left: 6px; - cursor: pointer; -`; - const Content = styled.div` display: flex; margin-top: 20px; @@ -72,13 +67,6 @@ const CoinsSettings = (props: Props) => ( {props.networks From cc217c7aa1fa8264d17008a4f1f17c02f48fa83d Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 18:40:00 +0200 Subject: [PATCH 003/125] add logic for hiding coins --- src/actions/LocalStorageActions.js | 26 ++++++++ .../Wallet/views/WalletSettings/Container.js | 3 + .../WalletSettings/components/Coins/index.js | 64 +++++++++++-------- .../Wallet/views/WalletSettings/index.js | 6 +- 4 files changed, 71 insertions(+), 28 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 84fb9710..475557fb 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -60,6 +60,7 @@ const KEY_BETA_MODAL: string = '/betaModalPrivacy'; // this key needs to be comp const KEY_LANGUAGE: string = `${STORAGE_PATH}language`; const KEY_LOCAL_CURRENCY: string = `${STORAGE_PATH}localCurrency`; const KEY_HIDE_BALANCE: string = `${STORAGE_PATH}hideBalance`; +const KEY_HIDDEN_COINS: string = `${STORAGE_PATH}hiddenCoins`; // https://github.com/STRML/react-localstorage/blob/master/react-localstorage.js // or @@ -350,6 +351,31 @@ export const getImportedAccounts = (): ?Array => { return null; }; +export const handleCoinVisibility = ( + coinShortcut: String, + shouldBeVisible: boolean +): ThunkAction => (): void => { + const configuration: ?Array = getHiddenCoins(); + let newConfig = configuration; + const isAlreadyHidden = configuration.find(coin => coin === coinShortcut); + + if (isAlreadyHidden && shouldBeVisible) { + newConfig = configuration.filter(coin => coin !== coinShortcut); + } else if (!isAlreadyHidden) { + newConfig = [...configuration, coinShortcut]; + } + + storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(newConfig)); +}; + +export const getHiddenCoins = (): ?Array => { + const coinsConfig: ?string = storageUtils.get(TYPE, KEY_HIDDEN_COINS); + if (coinsConfig) { + return JSON.parse(coinsConfig); + } + return []; +}; + export const removeImportedAccounts = (device: TrezorDevice): ThunkAction => ( dispatch: Dispatch ): void => { diff --git a/src/views/Wallet/views/WalletSettings/Container.js b/src/views/Wallet/views/WalletSettings/Container.js index 19b4390b..3d30be05 100644 --- a/src/views/Wallet/views/WalletSettings/Container.js +++ b/src/views/Wallet/views/WalletSettings/Container.js @@ -5,6 +5,7 @@ import { injectIntl } from 'react-intl'; import type { IntlShape } from 'react-intl'; import * as WalletActions from 'actions/WalletActions'; +import * as LocalStorageActions from 'actions/LocalStorageActions'; import type { State, Dispatch } from 'flowtype'; import WalletSettings from './index'; @@ -21,6 +22,7 @@ type StateProps = {| type DispatchProps = {| setLocalCurrency: typeof WalletActions.setLocalCurrency, setHideBalance: typeof WalletActions.setHideBalance, + handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, |}; export type Props = {| ...OwnProps, ...StateProps, ...DispatchProps |}; @@ -34,6 +36,7 @@ const mapStateToProps = (state: State): StateProps => ({ const mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({ setLocalCurrency: bindActionCreators(WalletActions.setLocalCurrency, dispatch), setHideBalance: bindActionCreators(WalletActions.setHideBalance, dispatch), + handleCoinVisibility: bindActionCreators(LocalStorageActions.handleCoinVisibility, dispatch), }); export default injectIntl( diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index d6a11abc..0f00af28 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -1,6 +1,6 @@ /* @flow */ import styled from 'styled-components'; -import React from 'react'; +import React, { Component } from 'react'; import { FormattedMessage } from 'react-intl'; import { FONT_SIZE } from 'config/variables'; @@ -62,31 +62,41 @@ const LogoWrapper = styled.div` align-items: center; `; -const CoinsSettings = (props: Props) => ( - - - - - {props.networks - .filter(network => !network.isHidden) - .map(network => ( - - - - - - {network.name} - - - {}} checked /> - - - ))} - - - -); +class CoinsSettings extends Component { + render() { + const { networks, handleCoinVisibility } = this.props; + return ( + + + + + {networks + .filter(network => !network.isHidden) + .map(network => ( + + + + + + {network.name} + + + { + handleCoinVisibility(network.shortcut, !isVisible); + }} + checked + /> + + + ))} + + + + ); + } +} export default CoinsSettings; diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index 866b5a1a..405ed3d0 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -78,6 +78,7 @@ const buildCurrencyOption = currency => { const WalletSettings = (props: Props) => ( + {console.log(props.localStorage)}
@@ -111,7 +112,10 @@ const WalletSettings = (props: Props) => (
- +
From 184d8a2b236d0ceb2e5cc9e5994f63bd7b838806 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 18:59:12 +0200 Subject: [PATCH 004/125] dispatch new action --- src/actions/LocalStorageActions.js | 6 +- src/actions/constants/wallet.js | 1 + src/reducers/WalletReducer.js | 8 +++ .../WalletSettings/components/Coins/index.js | 69 +++++++++---------- .../Wallet/views/WalletSettings/index.js | 2 +- 5 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 475557fb..2976e23c 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -354,7 +354,7 @@ export const getImportedAccounts = (): ?Array => { export const handleCoinVisibility = ( coinShortcut: String, shouldBeVisible: boolean -): ThunkAction => (): void => { +): ThunkAction => (dispatch: Dispatch): void => { const configuration: ?Array = getHiddenCoins(); let newConfig = configuration; const isAlreadyHidden = configuration.find(coin => coin === coinShortcut); @@ -366,6 +366,10 @@ export const handleCoinVisibility = ( } storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(newConfig)); + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins: newConfig, + }); }; export const getHiddenCoins = (): ?Array => { diff --git a/src/actions/constants/wallet.js b/src/actions/constants/wallet.js index fa3bf052..a32cddfa 100644 --- a/src/actions/constants/wallet.js +++ b/src/actions/constants/wallet.js @@ -19,3 +19,4 @@ export const TOGGLE_SIDEBAR: 'wallet__toggle_sidebar' = 'wallet__toggle_sidebar' export const SET_LANGUAGE: 'wallet__set_language' = 'wallet__set_language'; export const SET_LOCAL_CURRENCY: 'wallet__set_local_currency' = 'wallet__set_local_currency'; export const SET_HIDE_BALANCE: 'wallet__set_hide_balance' = 'wallet__set_hide_balance'; +export const SET_HIDDEN_COINS: 'wallet__set_hidden_coins' = 'wallet__set_hidden_coins'; diff --git a/src/reducers/WalletReducer.js b/src/reducers/WalletReducer.js index fab169a2..2a56c1a7 100644 --- a/src/reducers/WalletReducer.js +++ b/src/reducers/WalletReducer.js @@ -24,6 +24,7 @@ type State = { firstLocationChange: boolean, disconnectRequest: ?TrezorDevice, selectedDevice: ?TrezorDevice, + hiddenCoins: ?Array, }; const initialState: State = { @@ -41,6 +42,7 @@ const initialState: State = { initialPathname: null, disconnectRequest: null, selectedDevice: null, + hiddenCoins: [], }; export default function wallet(state: State = initialState, action: Action): State { @@ -145,6 +147,12 @@ export default function wallet(state: State = initialState, action: Action): Sta hideBalance: action.toggled, }; + case WALLET.SET_HIDDEN_COINS: + return { + ...state, + hiddenCoins: action.hiddenCoins, + }; + default: return state; } diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 0f00af28..93c1a6b0 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -1,6 +1,6 @@ /* @flow */ import styled from 'styled-components'; -import React, { Component } from 'react'; +import React from 'react'; import { FormattedMessage } from 'react-intl'; import { FONT_SIZE } from 'config/variables'; @@ -62,41 +62,36 @@ const LogoWrapper = styled.div` align-items: center; `; -class CoinsSettings extends Component { - render() { - const { networks, handleCoinVisibility } = this.props; - return ( - - - - - {networks - .filter(network => !network.isHidden) - .map(network => ( - - - - - - {network.name} - - - { - handleCoinVisibility(network.shortcut, !isVisible); - }} - checked - /> - - - ))} - - - - ); - } -} +const CoinsSettings = (props: Props) => ( + + + + + {props.networks + .filter(network => !network.isHidden) + .map(network => ( + + + + + + {network.name} + + + { + props.handleCoinVisibility(network.shortcut, !isVisible); + }} + checked={props.hiddenCoins.includes(network.shortcut)} + /> + + + ))} + + + +); export default CoinsSettings; diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index 405ed3d0..33929d38 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -78,7 +78,6 @@ const buildCurrencyOption = currency => { const WalletSettings = (props: Props) => ( - {console.log(props.localStorage)}
@@ -115,6 +114,7 @@ const WalletSettings = (props: Props) => (
From 7050cf006d31b3ed13ef8a79a66e811c8f1d5920 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 19:05:06 +0200 Subject: [PATCH 005/125] load first config from local storage if there is one --- src/actions/LocalStorageActions.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 2976e23c..7dc24d11 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -248,6 +248,14 @@ const loadStorageData = (): ThunkAction => (dispatch: Dispatch): void => { }); } + const hiddenCoins = getHiddenCoins(); + if (hiddenCoins) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins, + }); + } + const userTokens: ?string = storageUtils.get(TYPE, KEY_TOKENS); if (userTokens) { dispatch({ From a0c4a6e477d1bec4fcf114a5789f5d685ce01782 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 19:10:19 +0200 Subject: [PATCH 006/125] filter coins in menu --- .../components/LeftNavigation/components/CoinMenu/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index f3ee7fda..346065c5 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -76,11 +76,13 @@ class CoinMenu extends PureComponent { } render() { + const { hiddenCoins } = this.props.wallet; const { config } = this.props.localStorage; return ( {config.networks - .filter(item => !item.isHidden) + .filter(item => !item.isHidden) // filter coins globally in config + .filter(item => hiddenCoins.includes(item.shortcut)) // filter coins by user settings .sort((a, b) => a.order - b.order) .map(item => ( Date: Tue, 16 Apr 2019 19:24:46 +0200 Subject: [PATCH 007/125] add secondary coins --- .../components/CoinMenu/index.js | 7 +++++-- .../WalletSettings/components/Coins/index.js | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index 346065c5..f9be9c7c 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -41,8 +41,11 @@ class CoinMenu extends PureComponent { } getOtherCoins() { + const { hiddenCoins } = this.props.wallet; return coins .sort((a, b) => a.order - b.order) + .filter(item => !item.isHidden) // hide coins globally in config + .filter(item => hiddenCoins.includes(item.id)) .map(coin => { const row = ( { return ( {config.networks - .filter(item => !item.isHidden) // filter coins globally in config - .filter(item => hiddenCoins.includes(item.shortcut)) // filter coins by user settings + .filter(item => !item.isHidden) // hide coins globally in config + .filter(item => hiddenCoins.includes(item.shortcut)) // hide coins by user settings .sort((a, b) => a.order - b.order) .map(item => ( ( ))} + {coins + .sort((a, b) => a.order - b.order) + .map(network => ( + + + + + + {network.coinName} + + + { + props.handleCoinVisibility(network.id, !isVisible); + }} + checked={props.hiddenCoins.includes(network.id)} + /> + + + ))}
From 9aa7e75f010ca3a9348e5cbd306d2433d8e8be57 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 19:43:37 +0200 Subject: [PATCH 008/125] hide also coins from dashboard --- src/views/Wallet/views/Dashboard/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/Wallet/views/Dashboard/index.js b/src/views/Wallet/views/Dashboard/index.js index cbc38daa..258c4e09 100644 --- a/src/views/Wallet/views/Dashboard/index.js +++ b/src/views/Wallet/views/Dashboard/index.js @@ -76,6 +76,7 @@ const Dashboard = (props: Props) => ( {props.localStorage.config.networks .filter(item => !item.isHidden) + .filter(item => props.wallet.hiddenCoins.includes(item.shortcut)) .map(network => ( Date: Tue, 16 Apr 2019 19:50:21 +0200 Subject: [PATCH 009/125] separate external wallets --- .../WalletSettings/components/Coins/index.js | 18 ++++++++++++++---- .../views/WalletSettings/index.messages.js | 4 ++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 6bae2b0a..517d052e 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -15,6 +15,7 @@ const Wrapper = styled.div` const Label = styled.div` display: flex; + padding: 10px 0; color: ${colors.TEXT_SECONDARY}; align-items: center; `; @@ -26,7 +27,7 @@ const Row = styled.div` const Content = styled.div` display: flex; - margin-top: 20px; + margin: 20px 0; flex-direction: column; `; @@ -41,6 +42,10 @@ const CoinRow = styled.div` &:first-child { border-top: 1px solid ${colors.DIVIDER}; } + + &:last-child { + border-bottom: 0; + } `; const Left = styled.div` @@ -66,10 +71,10 @@ const LogoWrapper = styled.div` const CoinsSettings = (props: Props) => ( - + {props.networks .filter(network => !network.isHidden) .map(network => ( @@ -90,6 +95,11 @@ const CoinsSettings = (props: Props) => ( ))} + + + {coins .sort((a, b) => a.order - b.order) .map(network => ( diff --git a/src/views/Wallet/views/WalletSettings/index.messages.js b/src/views/Wallet/views/WalletSettings/index.messages.js index abf718ee..36a6684d 100644 --- a/src/views/Wallet/views/WalletSettings/index.messages.js +++ b/src/views/Wallet/views/WalletSettings/index.messages.js @@ -20,6 +20,10 @@ const definedMessages: Messages = defineMessages({ id: 'TR_VISIBLE_COINS', defaultMessage: 'Visible coins', }, + TR_VISIBLE_COINS_EXTERNAL: { + id: 'TR_VISIBLE_COINS', + defaultMessage: 'Visible external coins', + }, TR_VISIBLE_COINS_EXPLAINED: { id: 'TR_VISIBLE_COINS_EXPLAINED', defaultMessage: 'The changes are saved automatically as they are made', From 53c8fd4eb53d90f92c1c7e2efd438fe0667c2778 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 16 Apr 2019 20:33:48 +0200 Subject: [PATCH 010/125] add empty message for coin menu --- .../components/CoinMenu/index.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index f9be9c7c..b8dfdc11 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -26,6 +26,13 @@ const StyledLink = styled(Link)` } `; +const Empty = styled.div` + display: flex; + justify-content: center; + align-items: center; + min-height: 50px; +`; + class CoinMenu extends PureComponent { getBaseUrl() { const { selectedDevice } = this.props.wallet; @@ -78,11 +85,24 @@ class CoinMenu extends PureComponent { }); } + isEmpty(networks) { + const numberOfVisibleNetworks = networks + .filter(item => !item.isHidden) // hide coins globally in config + .filter(item => this.props.wallet.hiddenCoins.includes(item.shortcut)); + + return numberOfVisibleNetworks.length <= 0; + } + render() { const { hiddenCoins } = this.props.wallet; const { config } = this.props.localStorage; return ( + {this.isEmpty(config.networks) && ( + + Please select a coin in application settings + + )} {config.networks .filter(item => !item.isHidden) // hide coins globally in config .filter(item => hiddenCoins.includes(item.shortcut)) // hide coins by user settings From ae1520aeba8df0a01f4122c7cbdfb228ee78a44b Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 17 Apr 2019 12:21:33 +0200 Subject: [PATCH 011/125] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63958eab..6ea76ee7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ __changed__ - Coins sorted by market cap - Link to "Bitcoin wallet" opens in the same tab - Most components are now from trezor-ui-components +- Limit max number of accounts to 10 +- Debounced validation in send forms __removed__ - Text "you will be redirected" from coins menu @@ -27,6 +29,10 @@ __fixed__ - Token select shows all tokens options - "Check for devices" button in device menu - Close xlm, xem modals when opening external wallet +- Peding tx overflow +- Update account empty flag after receiving tx +- Width of inputs in xrp send form advanced settings +- Ripple destination tag validation ## 1.1.1-beta __added__ From 7d5b08aa3bfde979fefcd9093ee9dc4f84ce4729 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 17 Apr 2019 16:20:14 +0200 Subject: [PATCH 012/125] hide and show menu parts according to visible coins --- .../components/CoinMenu/index.js | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index b8dfdc11..1162a5d7 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -26,13 +26,21 @@ const StyledLink = styled(Link)` } `; -const Empty = styled.div` +const Empty = styled.span` display: flex; justify-content: center; align-items: center; min-height: 50px; `; +const StyledLinkEmpty = styled(Link)` + padding: 0 5px; +`; + +const Gray = styled.span` + color: ${colors.TEXT_SECONDARY}; +`; + class CoinMenu extends PureComponent { getBaseUrl() { const { selectedDevice } = this.props.wallet; @@ -85,22 +93,36 @@ class CoinMenu extends PureComponent { }); } - isEmpty(networks) { - const numberOfVisibleNetworks = networks + isTopMenuEmpty() { + const numberOfVisibleNetworks = this.props.localStorage.config.networks .filter(item => !item.isHidden) // hide coins globally in config .filter(item => this.props.wallet.hiddenCoins.includes(item.shortcut)); return numberOfVisibleNetworks.length <= 0; } + isBottomMenuEmpty() { + const { hiddenCoins } = this.props.wallet; + const numberOfVisibleNetworks = coins + .filter(item => !item.isHidden) + .filter(item => hiddenCoins.includes(item.id)); + + return numberOfVisibleNetworks.length <= 0; + } + + isMenuEmpty() { + return this.isTopMenuEmpty() && this.isBottomMenuEmpty(); + } + render() { const { hiddenCoins } = this.props.wallet; const { config } = this.props.localStorage; return ( - {this.isEmpty(config.networks) && ( + {this.isMenuEmpty() && ( - Please select a coin in application settings + Select a coin + in application settings )} {config.networks @@ -120,11 +142,13 @@ class CoinMenu extends PureComponent { /> ))} - } - hasBorder - /> + {!this.isBottomMenuEmpty() && ( + } + hasBorder + /> + )} {this.getOtherCoins()} ); From dc4efba4772503b1f29172c7e230bbae9848dafc Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 17 Apr 2019 16:42:34 +0200 Subject: [PATCH 013/125] added explaining tooltips --- .../WalletSettings/components/Coins/index.js | 35 ++++++++++++++----- .../views/WalletSettings/index.messages.js | 2 +- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 517d052e..20172da5 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -5,7 +5,7 @@ import { FormattedMessage } from 'react-intl'; import { FONT_SIZE } from 'config/variables'; import coins from 'constants/coins'; -import { colors, Switch, CoinLogo } from 'trezor-ui-components'; +import { colors, Switch, CoinLogo, Tooltip, Icon, icons as ICONS } from 'trezor-ui-components'; import l10nMessages from '../../index.messages'; const Wrapper = styled.div` @@ -13,13 +13,6 @@ const Wrapper = styled.div` flex-direction: column; `; -const Label = styled.div` - display: flex; - padding: 10px 0; - color: ${colors.TEXT_SECONDARY}; - align-items: center; -`; - const Row = styled.div` display: flex; flex-direction: column; @@ -31,6 +24,18 @@ const Content = styled.div` flex-direction: column; `; +const Label = styled.div` + display: flex; + padding: 10px 0; + color: ${colors.TEXT_SECONDARY}; + align-items: center; +`; + +const TooltipIcon = styled(Icon)` + margin-left: 6px; + cursor: pointer; +`; + const CoinRow = styled.div` height: 50px; align-items: center; @@ -74,6 +79,13 @@ const CoinsSettings = (props: Props) => ( {props.networks .filter(network => !network.isHidden) @@ -99,6 +111,13 @@ const CoinsSettings = (props: Props) => ( {coins .sort((a, b) => a.order - b.order) diff --git a/src/views/Wallet/views/WalletSettings/index.messages.js b/src/views/Wallet/views/WalletSettings/index.messages.js index 36a6684d..c669d4ab 100644 --- a/src/views/Wallet/views/WalletSettings/index.messages.js +++ b/src/views/Wallet/views/WalletSettings/index.messages.js @@ -26,7 +26,7 @@ const definedMessages: Messages = defineMessages({ }, TR_VISIBLE_COINS_EXPLAINED: { id: 'TR_VISIBLE_COINS_EXPLAINED', - defaultMessage: 'The changes are saved automatically as they are made', + defaultMessage: 'Select a coins which will be visible in wallet', }, }); From 36848591c025a453eef4971b8e4a5acbd21b04cb Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 17 Apr 2019 17:13:23 +0200 Subject: [PATCH 014/125] fix some flow --- src/actions/LocalStorageActions.js | 4 ++-- src/actions/WalletActions.js | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 7dc24d11..5329cf57 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -363,8 +363,8 @@ export const handleCoinVisibility = ( coinShortcut: String, shouldBeVisible: boolean ): ThunkAction => (dispatch: Dispatch): void => { - const configuration: ?Array = getHiddenCoins(); - let newConfig = configuration; + const configuration: Array = getHiddenCoins(); + let newConfig: Array = configuration; const isAlreadyHidden = configuration.find(coin => coin === coinShortcut); if (isAlreadyHidden && shouldBeVisible) { diff --git a/src/actions/WalletActions.js b/src/actions/WalletActions.js index 1aa9a853..c25531bb 100644 --- a/src/actions/WalletActions.js +++ b/src/actions/WalletActions.js @@ -25,6 +25,10 @@ export type WalletAction = state?: RouterLocationState, pathname?: string, } + | { + type: typeof WALLET.SET_HIDDEN_COINS, + hiddenCoins: Array, + } | { type: typeof WALLET.TOGGLE_DEVICE_DROPDOWN, opened: boolean, From 94d4501447ab4eaac84b8150fa8448fc266897e1 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 17 Apr 2019 17:46:35 +0200 Subject: [PATCH 015/125] upgrade tuc to 14 --- package.json | 2 +- yarn.lock | 28 +++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8f1e6453..c358bc0d 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "styled-normalize": "^8.0.6", "trezor-bridge-communicator": "1.0.2", "trezor-connect": "7.0.2", - "trezor-ui-components": "^1.0.0-beta.13", + "trezor-ui-components": "^1.0.0-beta.14", "wallet-address-validator": "^0.2.4", "web3": "1.0.0-beta.35", "webpack": "^4.29.3", diff --git a/yarn.lock b/yarn.lock index 2fd11bfa..95af836b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7413,6 +7413,11 @@ memoize-one@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.0.0.tgz#fc5e2f1427a216676a62ec652cf7398cfad123db" +memoize-one@^5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.4.tgz#005928aced5c43d890a4dfab18ca908b0ec92cbc" + integrity sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA== + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -9245,6 +9250,19 @@ react-select@^2.3.0: react-input-autosize "^2.2.1" react-transition-group "^2.2.1" +react-select@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-2.4.3.tgz#62efdf76d7e33e9bde22d907a0cc8abd0aeab656" + integrity sha512-cmxNaiHpviRYkojeW9rGEUJ4jpX7QTmPe2wcscwA4d1lStzw/cJtr4ft5H2O/YhfpkrcwaLghu3XmEYdXhBo8Q== + dependencies: + classnames "^2.2.5" + emotion "^9.1.2" + memoize-one "^5.0.0" + prop-types "^15.6.0" + raf "^3.4.0" + react-input-autosize "^2.2.1" + react-transition-group "^2.2.1" + react-switch@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/react-switch/-/react-switch-4.1.0.tgz#93379df044c9febe86d0b1485cb14b2a364562b6" @@ -11164,15 +11182,15 @@ trezor-translations-manager@^1.0.4: request "^2.88.0" request-promise-native "^1.0.5" -trezor-ui-components@^1.0.0-beta.13: - version "1.0.0-beta.13" - resolved "https://registry.yarnpkg.com/trezor-ui-components/-/trezor-ui-components-1.0.0-beta.13.tgz#44cd5e1d29b0d5aa230a0011a8f7707ea7ba16f7" - integrity sha512-Lhh6D0Kf5YnjvaQYtR00ddJBiM/Ddh8R2+gd2Xh/PjhyJT5/q/xj47R+FwiHW75KpP9W7C6naBvfZCmXHrpmKg== +trezor-ui-components@^1.0.0-beta.14: + version "1.0.0-beta.14" + resolved "https://registry.yarnpkg.com/trezor-ui-components/-/trezor-ui-components-1.0.0-beta.14.tgz#5d6dd3a8f5e1ace33a03eae7bb6d089ae0866575" + integrity sha512-jJ8hMn6Y97lg1a3YMUgQoCosYiPH3L43IJPapAw1c6PSVCPk43QUcbPxtA629Iv32EdCiMlDvANlZgyY9kH98g== dependencies: "@tippy.js/react" "^2.1.1" prop-types "^15.7.2" react-router-dom "^4.3.1" - react-select "^2.3.0" + react-select "^2.4.3" react-switch "^4.1.0" react-textarea-autosize "^7.1.0" From ec5786ad03ea3ddd548f2d93df2068eecd55df12 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 17 Apr 2019 19:14:06 +0200 Subject: [PATCH 016/125] fix all flow --- src/actions/LocalStorageActions.js | 8 ++++---- src/actions/WalletActions.js | 2 +- src/reducers/WalletReducer.js | 2 +- .../Wallet/views/WalletSettings/components/Coins/index.js | 8 ++++++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 5329cf57..bfc652cc 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -360,11 +360,11 @@ export const getImportedAccounts = (): ?Array => { }; export const handleCoinVisibility = ( - coinShortcut: String, + coinShortcut: string, shouldBeVisible: boolean ): ThunkAction => (dispatch: Dispatch): void => { - const configuration: Array = getHiddenCoins(); - let newConfig: Array = configuration; + const configuration: Array = getHiddenCoins(); + let newConfig: Array = configuration; const isAlreadyHidden = configuration.find(coin => coin === coinShortcut); if (isAlreadyHidden && shouldBeVisible) { @@ -380,7 +380,7 @@ export const handleCoinVisibility = ( }); }; -export const getHiddenCoins = (): ?Array => { +export const getHiddenCoins = (): Array => { const coinsConfig: ?string = storageUtils.get(TYPE, KEY_HIDDEN_COINS); if (coinsConfig) { return JSON.parse(coinsConfig); diff --git a/src/actions/WalletActions.js b/src/actions/WalletActions.js index c25531bb..221c7c1d 100644 --- a/src/actions/WalletActions.js +++ b/src/actions/WalletActions.js @@ -27,7 +27,7 @@ export type WalletAction = } | { type: typeof WALLET.SET_HIDDEN_COINS, - hiddenCoins: Array, + hiddenCoins: Array, } | { type: typeof WALLET.TOGGLE_DEVICE_DROPDOWN, diff --git a/src/reducers/WalletReducer.js b/src/reducers/WalletReducer.js index 2a56c1a7..9a940e0a 100644 --- a/src/reducers/WalletReducer.js +++ b/src/reducers/WalletReducer.js @@ -24,7 +24,7 @@ type State = { firstLocationChange: boolean, disconnectRequest: ?TrezorDevice, selectedDevice: ?TrezorDevice, - hiddenCoins: ?Array, + hiddenCoins: Array, }; const initialState: State = { diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 20172da5..ed18de98 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -4,10 +4,18 @@ import React from 'react'; import { FormattedMessage } from 'react-intl'; import { FONT_SIZE } from 'config/variables'; import coins from 'constants/coins'; +import * as LocalStorageActions from 'actions/LocalStorageActions'; +import type { Network } from 'flowtype'; import { colors, Switch, CoinLogo, Tooltip, Icon, icons as ICONS } from 'trezor-ui-components'; import l10nMessages from '../../index.messages'; +type Props = { + networks: Array, + hiddenCoins: Array, + handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, +}; + const Wrapper = styled.div` display: flex; flex-direction: column; From 17c0f77e16abf9fbac5f6e4a806302f7de0bc72e Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 17 Apr 2019 19:30:41 +0200 Subject: [PATCH 017/125] cleanup eth regexps --- .../ethereum/SendFormValidationActions.js | 29 ++------- src/utils/__tests__/ethUtils.test.js | 60 +++++++++++++++++++ src/utils/ethUtils.js | 12 ++++ 3 files changed, 78 insertions(+), 23 deletions(-) diff --git a/src/actions/ethereum/SendFormValidationActions.js b/src/actions/ethereum/SendFormValidationActions.js index c3f9a4d0..6d2a77a2 100644 --- a/src/actions/ethereum/SendFormValidationActions.js +++ b/src/actions/ethereum/SendFormValidationActions.js @@ -11,22 +11,6 @@ import * as ethUtils from 'utils/ethUtils'; import type { Dispatch, GetState, PayloadAction } from 'flowtype'; import type { State, FeeLevel } from 'reducers/SendFormEthereumReducer'; -// general regular expressions -const NUMBER_RE: RegExp = new RegExp('^(0|0\\.([0-9]+)?|[1-9][0-9]*\\.?([0-9]+)?|\\.[0-9]+)$'); -const UPPERCASE_RE = new RegExp('^(.*[A-Z].*)$'); -const ABS_RE = new RegExp('^[0-9]+$'); -const ETH_18_RE = new RegExp( - '^(0|0\\.([0-9]{0,18})?|[1-9][0-9]*\\.?([0-9]{0,18})?|\\.[0-9]{0,18})$' -); -const dynamicRegexp = (decimals: number): RegExp => { - if (decimals > 0) { - return new RegExp( - `^(0|0\\.([0-9]{0,${decimals}})?|[1-9][0-9]*\\.?([0-9]{0,${decimals}})?|\\.[0-9]{1,${decimals}})$` - ); - } - return ABS_RE; -}; - /* * Called from SendFormActions.observe * Reaction for WEB3.GAS_PRICE_UPDATED action @@ -168,7 +152,7 @@ export const addressValidation = ($state: State): PayloadAction => (): St state.errors.address = 'Address is not set'; } else if (!EthereumjsUtil.isValidAddress(address)) { state.errors.address = 'Address is not valid'; - } else if (address.match(UPPERCASE_RE) && !EthereumjsUtil.isValidChecksumAddress(address)) { + } else if (ethUtils.hasUppercase(address) && !EthereumjsUtil.isValidChecksumAddress(address)) { state.errors.address = 'Address is not a valid checksum'; } return state; @@ -244,7 +228,7 @@ export const amountValidation = ($state: State): PayloadAction => ( const { amount } = state; if (amount.length < 1) { state.errors.amount = 'Amount is not set'; - } else if (amount.length > 0 && !amount.match(NUMBER_RE)) { + } else if (amount.length > 0 && !ethUtils.isEthereumNumber(amount)) { state.errors.amount = 'Amount is not a number'; } else { const isToken: boolean = state.currency !== state.networkSymbol; @@ -258,9 +242,8 @@ export const amountValidation = ($state: State): PayloadAction => ( account.deviceState ); if (!token) return state; - const decimalRegExp = dynamicRegexp(parseInt(token.decimals, 0)); - if (!state.amount.match(decimalRegExp)) { + if (!ethUtils.isEthereumNumber(state.amount, parseInt(token.decimals, 0))) { state.errors.amount = `Maximum ${token.decimals} decimals allowed`; } else if (new BigNumber(state.total).isGreaterThan(account.balance)) { state.errors.amount = `Not enough ${state.networkSymbol} to cover transaction fee`; @@ -273,7 +256,7 @@ export const amountValidation = ($state: State): PayloadAction => ( } else if (new BigNumber(state.amount).isLessThanOrEqualTo('0')) { state.errors.amount = 'Amount is too low'; } - } else if (!state.amount.match(ETH_18_RE)) { + } else if (!ethUtils.isEthereumNumber(state.amount, 18)) { state.errors.amount = 'Maximum 18 decimals allowed'; } else if ( new BigNumber(state.total).isGreaterThan( @@ -302,7 +285,7 @@ export const gasLimitValidation = ($state: State): PayloadAction => ( const { gasLimit } = state; if (gasLimit.length < 1) { state.errors.gasLimit = 'Gas limit is not set'; - } else if (gasLimit.length > 0 && !gasLimit.match(NUMBER_RE)) { + } else if (gasLimit.length > 0 && !ethUtils.isEthereumNumber(gasLimit)) { state.errors.gasLimit = 'Gas limit is not a number'; } else { const gl: BigNumber = new BigNumber(gasLimit); @@ -331,7 +314,7 @@ export const gasPriceValidation = ($state: State): PayloadAction => (): S const { gasPrice } = state; if (gasPrice.length < 1) { state.errors.gasPrice = 'Gas price is not set'; - } else if (gasPrice.length > 0 && !gasPrice.match(NUMBER_RE)) { + } else if (gasPrice.length > 0 && !ethUtils.isEthereumNumber(gasPrice)) { state.errors.gasPrice = 'Gas price is not a number'; } else { const gp: BigNumber = new BigNumber(gasPrice); diff --git a/src/utils/__tests__/ethUtils.test.js b/src/utils/__tests__/ethUtils.test.js index 44d0e08e..ab842b44 100644 --- a/src/utils/__tests__/ethUtils.test.js +++ b/src/utils/__tests__/ethUtils.test.js @@ -52,4 +52,64 @@ describe('eth utils', () => { 'Address is not valid' ); }); + + it('isEthereumNumber', () => { + expect(utils.isEthereumNumber('0')).toBe(true); + expect(utils.isEthereumNumber('0.0')).toBe(true); + expect(utils.isEthereumNumber('0.00000000')).toBe(true); + expect(utils.isEthereumNumber('0.00000001')).toBe(true); + expect(utils.isEthereumNumber('+0.0')).toBe(false); + expect(utils.isEthereumNumber('-0.0')).toBe(false); + expect(utils.isEthereumNumber('1')).toBe(true); + expect(utils.isEthereumNumber('+1')).toBe(false); + expect(utils.isEthereumNumber('+100000')).toBe(false); + expect(utils.isEthereumNumber('.')).toBe(false); + expect(utils.isEthereumNumber('-.1')).toBe(false); + expect(utils.isEthereumNumber('0.1')).toBe(true); + expect(utils.isEthereumNumber('0.12314841')).toBe(true); + expect(utils.isEthereumNumber('0.1381841848184814818391931933')).toBe(false); //28 decimals + expect(utils.isEthereumNumber('0.100000000000000000')).toBe(true); //18s decimals + + expect(utils.isEthereumNumber('100.')).toBe(true); + expect(utils.isEthereumNumber('.1')).toBe(false); + expect(utils.isEthereumNumber('.000000001')).toBe(false); + expect(utils.isEthereumNumber('.13134818481481841')).toBe(false); + + expect(utils.isEthereumNumber('001.12314841')).toBe(false); + expect(utils.isEthereumNumber('83819319391491949941')).toBe(true); + expect(utils.isEthereumNumber('-83819319391491949941')).toBe(false); + expect(utils.isEthereumNumber('+0.131831848184')).toBe(false); + expect(utils.isEthereumNumber('0.127373193981774718318371831731761626162613')).toBe(false); + + expect(utils.isEthereumNumber('0.131831848184a')).toBe(false); + expect(utils.isEthereumNumber('100a')).toBe(false); + expect(utils.isEthereumNumber('.100a')).toBe(false); + expect(utils.isEthereumNumber('a.100')).toBe(false); + expect(utils.isEthereumNumber('abc')).toBe(false); + expect(utils.isEthereumNumber('1abc0')).toBe(false); + }); + + it('hasUppercase', () => { + expect(utils.hasUppercase('0')).toBe(false); + expect(utils.hasUppercase('abc')).toBe(false); + expect(utils.hasUppercase('abcD')).toBe(true); + expect(utils.hasUppercase('Abcd')).toBe(true); + expect(utils.hasUppercase('aBcd')).toBe(true); + expect(utils.hasUppercase('123abc123')).toBe(false); + expect(utils.hasUppercase('0x123abc456')).toBe(false); + expect(utils.hasUppercase('0x123aBc456')).toBe(true); + }); + + it('isEthereumNumber decimals=0', () => { + expect(utils.isEthereumNumber('0', 0)).toBe(true); + expect(utils.isEthereumNumber('0.1', 0)).toBe(false); + expect(utils.isEthereumNumber('0.12345', 0)).toBe(false); + expect(utils.isEthereumNumber('1', 0)).toBe(true); + expect(utils.isEthereumNumber('1.1', 0)).toBe(false); + expect(utils.isEthereumNumber('1000000', 0)).toBe(true); + expect(utils.isEthereumNumber('-1000000', 0)).toBe(false); + expect(utils.isEthereumNumber('.0', 0)).toBe(false); + expect(utils.isEthereumNumber('0.', 0)).toBe(true); + expect(utils.isEthereumNumber('.', 0)).toBe(false); + }); }); diff --git a/src/utils/ethUtils.js b/src/utils/ethUtils.js index 0f8ba01a..b997cded 100644 --- a/src/utils/ethUtils.js +++ b/src/utils/ethUtils.js @@ -46,3 +46,15 @@ export const isHex = (str: string): boolean => { const regExp = /^(0x|0X)?[0-9A-Fa-f]+$/g; return regExp.test(str); }; + +export const hasUppercase = (value: string) => { + const UPPERCASE_RE = new RegExp('^(.*[A-Z].*)$'); + return UPPERCASE_RE.test(value); +}; + +export const isEthereumNumber = (value: string, decimals: number = 18) => { + const ETH_18_RE = new RegExp( + `^(0|0\\.([0-9]{0,${decimals}})?|[1-9][0-9]*\\.?([0-9]{0,${decimals}})?)$` + ); + return ETH_18_RE.test(value); +}; From 6ad33b23ddc1f5262e1cdc8ca7aa7fd0a92b48ae Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 17 Apr 2019 19:37:09 +0200 Subject: [PATCH 018/125] fix test name --- src/utils/__tests__/{l10n.js => l10n.test.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/utils/__tests__/{l10n.js => l10n.test.js} (100%) diff --git a/src/utils/__tests__/l10n.js b/src/utils/__tests__/l10n.test.js similarity index 100% rename from src/utils/__tests__/l10n.js rename to src/utils/__tests__/l10n.test.js From 39ff4833871604607a2e223bffd1df4f366a5467 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 22 Apr 2019 11:31:55 +0200 Subject: [PATCH 019/125] extract xrp regexps, cleanup --- src/actions/LocalStorageActions.js | 4 ++ .../ethereum/SendFormValidationActions.js | 18 +++--- .../ripple/SendFormValidationActions.js | 13 ++-- src/utils/__tests__/ethUtils.test.js | 60 ------------------ src/utils/__tests__/validators.test.js | 63 +++++++++++++++++++ src/utils/ethUtils.js | 12 ---- src/utils/validators.js | 30 +++++++++ 7 files changed, 114 insertions(+), 86 deletions(-) create mode 100644 src/utils/__tests__/validators.test.js create mode 100644 src/utils/validators.js diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 84fb9710..54c91c57 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -136,6 +136,10 @@ export const update = (event: StorageEvent): ThunkAction => (dispatch: Dispatch) } if (event.key === KEY_ACCOUNTS) { + console.log('omg'); + console.log(event); + console.log(JSON.parse(event.newValue)); + console.log(event.oldValue); dispatch({ type: ACCOUNT.FROM_STORAGE, payload: JSON.parse(event.newValue), diff --git a/src/actions/ethereum/SendFormValidationActions.js b/src/actions/ethereum/SendFormValidationActions.js index 6d2a77a2..c8a77056 100644 --- a/src/actions/ethereum/SendFormValidationActions.js +++ b/src/actions/ethereum/SendFormValidationActions.js @@ -7,6 +7,7 @@ import { findDevice, getPendingAmount, findToken } from 'reducers/utils'; import { toFiatCurrency } from 'utils/fiatConverter'; import * as SEND from 'actions/constants/send'; import * as ethUtils from 'utils/ethUtils'; +import * as validators from 'utils/validators'; import type { Dispatch, GetState, PayloadAction } from 'flowtype'; import type { State, FeeLevel } from 'reducers/SendFormEthereumReducer'; @@ -152,7 +153,10 @@ export const addressValidation = ($state: State): PayloadAction => (): St state.errors.address = 'Address is not set'; } else if (!EthereumjsUtil.isValidAddress(address)) { state.errors.address = 'Address is not valid'; - } else if (ethUtils.hasUppercase(address) && !EthereumjsUtil.isValidChecksumAddress(address)) { + } else if ( + validators.hasUppercase(address) && + !EthereumjsUtil.isValidChecksumAddress(address) + ) { state.errors.address = 'Address is not a valid checksum'; } return state; @@ -228,7 +232,7 @@ export const amountValidation = ($state: State): PayloadAction => ( const { amount } = state; if (amount.length < 1) { state.errors.amount = 'Amount is not set'; - } else if (amount.length > 0 && !ethUtils.isEthereumNumber(amount)) { + } else if (amount.length > 0 && !validators.isEthereumNumber(amount)) { state.errors.amount = 'Amount is not a number'; } else { const isToken: boolean = state.currency !== state.networkSymbol; @@ -243,7 +247,7 @@ export const amountValidation = ($state: State): PayloadAction => ( ); if (!token) return state; - if (!ethUtils.isEthereumNumber(state.amount, parseInt(token.decimals, 0))) { + if (!validators.isNumber(state.amount, parseInt(token.decimals, 0))) { state.errors.amount = `Maximum ${token.decimals} decimals allowed`; } else if (new BigNumber(state.total).isGreaterThan(account.balance)) { state.errors.amount = `Not enough ${state.networkSymbol} to cover transaction fee`; @@ -256,7 +260,7 @@ export const amountValidation = ($state: State): PayloadAction => ( } else if (new BigNumber(state.amount).isLessThanOrEqualTo('0')) { state.errors.amount = 'Amount is too low'; } - } else if (!ethUtils.isEthereumNumber(state.amount, 18)) { + } else if (!validators.isEthereumNumber(state.amount)) { state.errors.amount = 'Maximum 18 decimals allowed'; } else if ( new BigNumber(state.total).isGreaterThan( @@ -285,7 +289,7 @@ export const gasLimitValidation = ($state: State): PayloadAction => ( const { gasLimit } = state; if (gasLimit.length < 1) { state.errors.gasLimit = 'Gas limit is not set'; - } else if (gasLimit.length > 0 && !ethUtils.isEthereumNumber(gasLimit)) { + } else if (gasLimit.length > 0 && !validators.isEthereumNumber(gasLimit)) { state.errors.gasLimit = 'Gas limit is not a number'; } else { const gl: BigNumber = new BigNumber(gasLimit); @@ -314,7 +318,7 @@ export const gasPriceValidation = ($state: State): PayloadAction => (): S const { gasPrice } = state; if (gasPrice.length < 1) { state.errors.gasPrice = 'Gas price is not set'; - } else if (gasPrice.length > 0 && !ethUtils.isEthereumNumber(gasPrice)) { + } else if (gasPrice.length > 0 && !validators.isEthereumNumber(gasPrice)) { state.errors.gasPrice = 'Gas price is not a number'; } else { const gp: BigNumber = new BigNumber(gasPrice); @@ -343,7 +347,7 @@ export const nonceValidation = ($state: State): PayloadAction => ( const { nonce } = state; if (nonce.length < 1) { state.errors.nonce = 'Nonce is not set'; - } else if (!nonce.match(ABS_RE)) { + } else if (!validators.isAbs(nonce)) { state.errors.nonce = 'Nonce is not a valid number'; } else { const n: BigNumber = new BigNumber(nonce); diff --git a/src/actions/ripple/SendFormValidationActions.js b/src/actions/ripple/SendFormValidationActions.js index 3155d994..3de47265 100644 --- a/src/actions/ripple/SendFormValidationActions.js +++ b/src/actions/ripple/SendFormValidationActions.js @@ -5,6 +5,7 @@ import * as SEND from 'actions/constants/send'; import { findDevice, getPendingAmount } from 'reducers/utils'; import { toDecimalAmount } from 'utils/formatUtils'; import { toFiatCurrency } from 'utils/fiatConverter'; +import * as validators from 'utils/validators'; import type { Dispatch, @@ -16,10 +17,8 @@ import type { import type { State, FeeLevel } from 'reducers/SendFormRippleReducer'; import AddressValidator from 'wallet-address-validator'; + // general regular expressions -const ABS_RE = new RegExp('^[0-9]+$'); -const NUMBER_RE: RegExp = new RegExp('^(0|0\\.([0-9]+)?|[1-9][0-9]*\\.?([0-9]+)?|\\.[0-9]+)$'); -const XRP_6_RE = new RegExp('^(0|0\\.([0-9]{0,6})?|[1-9][0-9]*\\.?([0-9]{0,6})?|\\.[0-9]{0,6})$'); const U_INT_32 = 0xffffffff; /* @@ -270,11 +269,11 @@ const amountValidation = ($state: State): PayloadAction => ( const { amount } = state; if (amount.length < 1) { state.errors.amount = 'Amount is not set'; - } else if (amount.length > 0 && !amount.match(NUMBER_RE)) { + } else if (amount.length > 0 && !validators.isRippleNumber(amount)) { state.errors.amount = 'Amount is not a number'; } else { const pendingAmount: BigNumber = getPendingAmount(pending, state.networkSymbol); - if (!state.amount.match(XRP_6_RE)) { + if (!validators.isRippleNumber(state.amount)) { state.errors.amount = 'Maximum 6 decimals allowed'; } else if ( new BigNumber(state.total).isGreaterThan( @@ -319,7 +318,7 @@ export const feeValidation = ($state: State): PayloadAction => ( const { fee } = state; if (fee.length < 1) { state.errors.fee = 'Fee is not set'; - } else if (fee.length > 0 && !fee.match(ABS_RE)) { + } else if (fee.length > 0 && !validators.isAbs(fee)) { state.errors.fee = 'Fee must be an absolute number'; } else { const gl: BigNumber = new BigNumber(fee); @@ -340,7 +339,7 @@ export const destinationTagValidation = ($state: State): PayloadAction => const { destinationTag } = state; - if (destinationTag.length > 0 && !destinationTag.match(ABS_RE)) { + if (destinationTag.length > 0 && !validators.isAbs(destinationTag)) { state.errors.destinationTag = 'Destination tag must be an absolute number'; } diff --git a/src/utils/__tests__/ethUtils.test.js b/src/utils/__tests__/ethUtils.test.js index ab842b44..44d0e08e 100644 --- a/src/utils/__tests__/ethUtils.test.js +++ b/src/utils/__tests__/ethUtils.test.js @@ -52,64 +52,4 @@ describe('eth utils', () => { 'Address is not valid' ); }); - - it('isEthereumNumber', () => { - expect(utils.isEthereumNumber('0')).toBe(true); - expect(utils.isEthereumNumber('0.0')).toBe(true); - expect(utils.isEthereumNumber('0.00000000')).toBe(true); - expect(utils.isEthereumNumber('0.00000001')).toBe(true); - expect(utils.isEthereumNumber('+0.0')).toBe(false); - expect(utils.isEthereumNumber('-0.0')).toBe(false); - expect(utils.isEthereumNumber('1')).toBe(true); - expect(utils.isEthereumNumber('+1')).toBe(false); - expect(utils.isEthereumNumber('+100000')).toBe(false); - expect(utils.isEthereumNumber('.')).toBe(false); - expect(utils.isEthereumNumber('-.1')).toBe(false); - expect(utils.isEthereumNumber('0.1')).toBe(true); - expect(utils.isEthereumNumber('0.12314841')).toBe(true); - expect(utils.isEthereumNumber('0.1381841848184814818391931933')).toBe(false); //28 decimals - expect(utils.isEthereumNumber('0.100000000000000000')).toBe(true); //18s decimals - - expect(utils.isEthereumNumber('100.')).toBe(true); - expect(utils.isEthereumNumber('.1')).toBe(false); - expect(utils.isEthereumNumber('.000000001')).toBe(false); - expect(utils.isEthereumNumber('.13134818481481841')).toBe(false); - - expect(utils.isEthereumNumber('001.12314841')).toBe(false); - expect(utils.isEthereumNumber('83819319391491949941')).toBe(true); - expect(utils.isEthereumNumber('-83819319391491949941')).toBe(false); - expect(utils.isEthereumNumber('+0.131831848184')).toBe(false); - expect(utils.isEthereumNumber('0.127373193981774718318371831731761626162613')).toBe(false); - - expect(utils.isEthereumNumber('0.131831848184a')).toBe(false); - expect(utils.isEthereumNumber('100a')).toBe(false); - expect(utils.isEthereumNumber('.100a')).toBe(false); - expect(utils.isEthereumNumber('a.100')).toBe(false); - expect(utils.isEthereumNumber('abc')).toBe(false); - expect(utils.isEthereumNumber('1abc0')).toBe(false); - }); - - it('hasUppercase', () => { - expect(utils.hasUppercase('0')).toBe(false); - expect(utils.hasUppercase('abc')).toBe(false); - expect(utils.hasUppercase('abcD')).toBe(true); - expect(utils.hasUppercase('Abcd')).toBe(true); - expect(utils.hasUppercase('aBcd')).toBe(true); - expect(utils.hasUppercase('123abc123')).toBe(false); - expect(utils.hasUppercase('0x123abc456')).toBe(false); - expect(utils.hasUppercase('0x123aBc456')).toBe(true); - }); - - it('isEthereumNumber decimals=0', () => { - expect(utils.isEthereumNumber('0', 0)).toBe(true); - expect(utils.isEthereumNumber('0.1', 0)).toBe(false); - expect(utils.isEthereumNumber('0.12345', 0)).toBe(false); - expect(utils.isEthereumNumber('1', 0)).toBe(true); - expect(utils.isEthereumNumber('1.1', 0)).toBe(false); - expect(utils.isEthereumNumber('1000000', 0)).toBe(true); - expect(utils.isEthereumNumber('-1000000', 0)).toBe(false); - expect(utils.isEthereumNumber('.0', 0)).toBe(false); - expect(utils.isEthereumNumber('0.', 0)).toBe(true); - expect(utils.isEthereumNumber('.', 0)).toBe(false); - }); }); diff --git a/src/utils/__tests__/validators.test.js b/src/utils/__tests__/validators.test.js new file mode 100644 index 00000000..a1f5a3b5 --- /dev/null +++ b/src/utils/__tests__/validators.test.js @@ -0,0 +1,63 @@ +import * as utils from '../validators'; + +describe('validators utils', () => { + it('isEthereumNumber', () => { + expect(utils.isEthereumNumber('0')).toBe(true); + expect(utils.isEthereumNumber('0.0')).toBe(true); + expect(utils.isEthereumNumber('0.00000000')).toBe(true); + expect(utils.isEthereumNumber('0.00000001')).toBe(true); + expect(utils.isEthereumNumber('+0.0')).toBe(false); + expect(utils.isEthereumNumber('-0.0')).toBe(false); + expect(utils.isEthereumNumber('1')).toBe(true); + expect(utils.isEthereumNumber('+1')).toBe(false); + expect(utils.isEthereumNumber('+100000')).toBe(false); + expect(utils.isEthereumNumber('.')).toBe(false); + expect(utils.isEthereumNumber('-.1')).toBe(false); + expect(utils.isEthereumNumber('0.1')).toBe(true); + expect(utils.isEthereumNumber('0.12314841')).toBe(true); + expect(utils.isEthereumNumber('0.1381841848184814818391931933')).toBe(false); //28 decimals + expect(utils.isEthereumNumber('0.100000000000000000')).toBe(true); //18s decimals + + expect(utils.isEthereumNumber('100.')).toBe(true); + expect(utils.isEthereumNumber('.1')).toBe(false); + expect(utils.isEthereumNumber('.000000001')).toBe(false); + expect(utils.isEthereumNumber('.13134818481481841')).toBe(false); + + expect(utils.isEthereumNumber('001.12314841')).toBe(false); + expect(utils.isEthereumNumber('83819319391491949941')).toBe(true); + expect(utils.isEthereumNumber('-83819319391491949941')).toBe(false); + expect(utils.isEthereumNumber('+0.131831848184')).toBe(false); + expect(utils.isEthereumNumber('0.127373193981774718318371831731761626162613')).toBe(false); + + expect(utils.isEthereumNumber('0.131831848184a')).toBe(false); + expect(utils.isEthereumNumber('100a')).toBe(false); + expect(utils.isEthereumNumber('.100a')).toBe(false); + expect(utils.isEthereumNumber('a.100')).toBe(false); + expect(utils.isEthereumNumber('abc')).toBe(false); + expect(utils.isEthereumNumber('1abc0')).toBe(false); + }); + + it('hasUppercase', () => { + expect(utils.hasUppercase('0')).toBe(false); + expect(utils.hasUppercase('abc')).toBe(false); + expect(utils.hasUppercase('abcD')).toBe(true); + expect(utils.hasUppercase('Abcd')).toBe(true); + expect(utils.hasUppercase('aBcd')).toBe(true); + expect(utils.hasUppercase('123abc123')).toBe(false); + expect(utils.hasUppercase('0x123abc456')).toBe(false); + expect(utils.hasUppercase('0x123aBc456')).toBe(true); + }); + + it('isNumber decimals=0', () => { + expect(utils.isNumber('0', 0)).toBe(true); + expect(utils.isNumber('0.1', 0)).toBe(false); + expect(utils.isNumber('0.12345', 0)).toBe(false); + expect(utils.isNumber('1', 0)).toBe(true); + expect(utils.isNumber('1.1', 0)).toBe(false); + expect(utils.isNumber('1000000', 0)).toBe(true); + expect(utils.isNumber('-1000000', 0)).toBe(false); + expect(utils.isNumber('.0', 0)).toBe(false); + expect(utils.isNumber('0.', 0)).toBe(false); + expect(utils.isNumber('.', 0)).toBe(false); + }); +}); diff --git a/src/utils/ethUtils.js b/src/utils/ethUtils.js index b997cded..0f8ba01a 100644 --- a/src/utils/ethUtils.js +++ b/src/utils/ethUtils.js @@ -46,15 +46,3 @@ export const isHex = (str: string): boolean => { const regExp = /^(0x|0X)?[0-9A-Fa-f]+$/g; return regExp.test(str); }; - -export const hasUppercase = (value: string) => { - const UPPERCASE_RE = new RegExp('^(.*[A-Z].*)$'); - return UPPERCASE_RE.test(value); -}; - -export const isEthereumNumber = (value: string, decimals: number = 18) => { - const ETH_18_RE = new RegExp( - `^(0|0\\.([0-9]{0,${decimals}})?|[1-9][0-9]*\\.?([0-9]{0,${decimals}})?)$` - ); - return ETH_18_RE.test(value); -}; diff --git a/src/utils/validators.js b/src/utils/validators.js new file mode 100644 index 00000000..3b960a2e --- /dev/null +++ b/src/utils/validators.js @@ -0,0 +1,30 @@ +/* @flow */ + +export const hasUppercase = (value: string) => { + const UPPERCASE_RE = new RegExp('^(.*[A-Z].*)$'); + return UPPERCASE_RE.test(value); +}; + +export const isNumber = (value: string, decimals: number = 18) => { + if (decimals === 0) { + return isAbs(value); + } + + const ETH_18_RE = new RegExp( + `^(0|0\\.([0-9]{0,${decimals}})?|[1-9][0-9]*\\.?([0-9]{0,${decimals}})?)$` + ); + return ETH_18_RE.test(value); +}; + +export const isAbs = (value: string) => { + const ABS_RE = new RegExp('^[0-9]+$'); + return ABS_RE.test(value); +}; + +export const isEthereumNumber = (value: string) => { + return isNumber(value, 18); +}; + +export const isRippleNumber = (value: string) => { + return isNumber(value, 6); +}; From 39c683bf0c2e7e2a0e77f6ba3dca96d24b6d6873 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 22 Apr 2019 11:33:20 +0200 Subject: [PATCH 020/125] remove console.log --- src/actions/LocalStorageActions.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 54c91c57..84fb9710 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -136,10 +136,6 @@ export const update = (event: StorageEvent): ThunkAction => (dispatch: Dispatch) } if (event.key === KEY_ACCOUNTS) { - console.log('omg'); - console.log(event); - console.log(JSON.parse(event.newValue)); - console.log(event.oldValue); dispatch({ type: ACCOUNT.FROM_STORAGE, payload: JSON.parse(event.newValue), From 3efa72988fc5931fe6391451f36c3e92891357ac Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 22 Apr 2019 11:35:49 +0200 Subject: [PATCH 021/125] remove default decimals value --- src/utils/validators.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/validators.js b/src/utils/validators.js index 3b960a2e..99157c7f 100644 --- a/src/utils/validators.js +++ b/src/utils/validators.js @@ -5,7 +5,7 @@ export const hasUppercase = (value: string) => { return UPPERCASE_RE.test(value); }; -export const isNumber = (value: string, decimals: number = 18) => { +export const isNumber = (value: string, decimals: number) => { if (decimals === 0) { return isAbs(value); } From 7da8d4124dc22000bf1c55f19b248224db1fb70e Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 22 Apr 2019 13:43:44 +0200 Subject: [PATCH 022/125] fix validation --- .../ethereum/SendFormValidationActions.js | 10 +- .../ripple/SendFormValidationActions.js | 4 +- src/utils/__tests__/validators.test.js | 127 +++++++++++------- src/utils/validators.js | 11 +- 4 files changed, 93 insertions(+), 59 deletions(-) diff --git a/src/actions/ethereum/SendFormValidationActions.js b/src/actions/ethereum/SendFormValidationActions.js index c8a77056..c213710d 100644 --- a/src/actions/ethereum/SendFormValidationActions.js +++ b/src/actions/ethereum/SendFormValidationActions.js @@ -232,7 +232,7 @@ export const amountValidation = ($state: State): PayloadAction => ( const { amount } = state; if (amount.length < 1) { state.errors.amount = 'Amount is not set'; - } else if (amount.length > 0 && !validators.isEthereumNumber(amount)) { + } else if (amount.length > 0 && !validators.isNumber(amount)) { state.errors.amount = 'Amount is not a number'; } else { const isToken: boolean = state.currency !== state.networkSymbol; @@ -247,7 +247,7 @@ export const amountValidation = ($state: State): PayloadAction => ( ); if (!token) return state; - if (!validators.isNumber(state.amount, parseInt(token.decimals, 0))) { + if (!validators.hasDecimals(state.amount, parseInt(token.decimals, 0))) { state.errors.amount = `Maximum ${token.decimals} decimals allowed`; } else if (new BigNumber(state.total).isGreaterThan(account.balance)) { state.errors.amount = `Not enough ${state.networkSymbol} to cover transaction fee`; @@ -260,7 +260,7 @@ export const amountValidation = ($state: State): PayloadAction => ( } else if (new BigNumber(state.amount).isLessThanOrEqualTo('0')) { state.errors.amount = 'Amount is too low'; } - } else if (!validators.isEthereumNumber(state.amount)) { + } else if (!validators.hasDecimals(state.amount, 18)) { state.errors.amount = 'Maximum 18 decimals allowed'; } else if ( new BigNumber(state.total).isGreaterThan( @@ -289,7 +289,7 @@ export const gasLimitValidation = ($state: State): PayloadAction => ( const { gasLimit } = state; if (gasLimit.length < 1) { state.errors.gasLimit = 'Gas limit is not set'; - } else if (gasLimit.length > 0 && !validators.isEthereumNumber(gasLimit)) { + } else if (gasLimit.length > 0 && !validators.isNumber(gasLimit)) { state.errors.gasLimit = 'Gas limit is not a number'; } else { const gl: BigNumber = new BigNumber(gasLimit); @@ -318,7 +318,7 @@ export const gasPriceValidation = ($state: State): PayloadAction => (): S const { gasPrice } = state; if (gasPrice.length < 1) { state.errors.gasPrice = 'Gas price is not set'; - } else if (gasPrice.length > 0 && !validators.isEthereumNumber(gasPrice)) { + } else if (gasPrice.length > 0 && !validators.isNumber(gasPrice)) { state.errors.gasPrice = 'Gas price is not a number'; } else { const gp: BigNumber = new BigNumber(gasPrice); diff --git a/src/actions/ripple/SendFormValidationActions.js b/src/actions/ripple/SendFormValidationActions.js index 3de47265..d24ff34c 100644 --- a/src/actions/ripple/SendFormValidationActions.js +++ b/src/actions/ripple/SendFormValidationActions.js @@ -269,11 +269,11 @@ const amountValidation = ($state: State): PayloadAction => ( const { amount } = state; if (amount.length < 1) { state.errors.amount = 'Amount is not set'; - } else if (amount.length > 0 && !validators.isRippleNumber(amount)) { + } else if (amount.length > 0 && !validators.isNumber(amount)) { state.errors.amount = 'Amount is not a number'; } else { const pendingAmount: BigNumber = getPendingAmount(pending, state.networkSymbol); - if (!validators.isRippleNumber(state.amount)) { + if (!validators.hasDecimals(state.amount, 6)) { state.errors.amount = 'Maximum 6 decimals allowed'; } else if ( new BigNumber(state.total).isGreaterThan( diff --git a/src/utils/__tests__/validators.test.js b/src/utils/__tests__/validators.test.js index a1f5a3b5..71981e6f 100644 --- a/src/utils/__tests__/validators.test.js +++ b/src/utils/__tests__/validators.test.js @@ -1,40 +1,53 @@ import * as utils from '../validators'; describe('validators utils', () => { - it('isEthereumNumber', () => { - expect(utils.isEthereumNumber('0')).toBe(true); - expect(utils.isEthereumNumber('0.0')).toBe(true); - expect(utils.isEthereumNumber('0.00000000')).toBe(true); - expect(utils.isEthereumNumber('0.00000001')).toBe(true); - expect(utils.isEthereumNumber('+0.0')).toBe(false); - expect(utils.isEthereumNumber('-0.0')).toBe(false); - expect(utils.isEthereumNumber('1')).toBe(true); - expect(utils.isEthereumNumber('+1')).toBe(false); - expect(utils.isEthereumNumber('+100000')).toBe(false); - expect(utils.isEthereumNumber('.')).toBe(false); - expect(utils.isEthereumNumber('-.1')).toBe(false); - expect(utils.isEthereumNumber('0.1')).toBe(true); - expect(utils.isEthereumNumber('0.12314841')).toBe(true); - expect(utils.isEthereumNumber('0.1381841848184814818391931933')).toBe(false); //28 decimals - expect(utils.isEthereumNumber('0.100000000000000000')).toBe(true); //18s decimals - - expect(utils.isEthereumNumber('100.')).toBe(true); - expect(utils.isEthereumNumber('.1')).toBe(false); - expect(utils.isEthereumNumber('.000000001')).toBe(false); - expect(utils.isEthereumNumber('.13134818481481841')).toBe(false); - - expect(utils.isEthereumNumber('001.12314841')).toBe(false); - expect(utils.isEthereumNumber('83819319391491949941')).toBe(true); - expect(utils.isEthereumNumber('-83819319391491949941')).toBe(false); - expect(utils.isEthereumNumber('+0.131831848184')).toBe(false); - expect(utils.isEthereumNumber('0.127373193981774718318371831731761626162613')).toBe(false); - - expect(utils.isEthereumNumber('0.131831848184a')).toBe(false); - expect(utils.isEthereumNumber('100a')).toBe(false); - expect(utils.isEthereumNumber('.100a')).toBe(false); - expect(utils.isEthereumNumber('a.100')).toBe(false); - expect(utils.isEthereumNumber('abc')).toBe(false); - expect(utils.isEthereumNumber('1abc0')).toBe(false); + it('hasDecimals', () => { + expect(utils.hasDecimals('0', 18)).toBe(true); + expect(utils.hasDecimals('0.0', 18)).toBe(true); + expect(utils.hasDecimals('0.00000000', 18)).toBe(true); + expect(utils.hasDecimals('0.00000001', 18)).toBe(true); + expect(utils.hasDecimals('+0.0', 18)).toBe(false); + expect(utils.hasDecimals('-0.0', 18)).toBe(false); + expect(utils.hasDecimals('1', 18)).toBe(true); + expect(utils.hasDecimals('+1', 18)).toBe(false); + expect(utils.hasDecimals('+100000', 18)).toBe(false); + expect(utils.hasDecimals('.', 18)).toBe(false); + expect(utils.hasDecimals('-.1', 18)).toBe(false); + expect(utils.hasDecimals('0.1', 18)).toBe(true); + expect(utils.hasDecimals('0.12314841', 18)).toBe(true); + expect(utils.hasDecimals('0.1381841848184814818391931933', 18)).toBe(false); //28 decimals + expect(utils.hasDecimals('0.100000000000000000', 18)).toBe(true); //18s decimals + + expect(utils.hasDecimals('100.', 18)).toBe(true); + expect(utils.hasDecimals('.1', 18)).toBe(false); + expect(utils.hasDecimals('.000000001', 18)).toBe(false); + expect(utils.hasDecimals('.13134818481481841', 18)).toBe(false); + + expect(utils.hasDecimals('001.12314841', 18)).toBe(false); + expect(utils.hasDecimals('83819319391491949941', 18)).toBe(true); + expect(utils.hasDecimals('-83819319391491949941', 18)).toBe(false); + expect(utils.hasDecimals('+0.131831848184', 18)).toBe(false); + expect(utils.hasDecimals('0.127373193981774718318371831731761626162613', 18)).toBe(false); + + expect(utils.hasDecimals('0.131831848184a', 18)).toBe(false); + expect(utils.hasDecimals('100a', 18)).toBe(false); + expect(utils.hasDecimals('.100a', 18)).toBe(false); + expect(utils.hasDecimals('a.100', 18)).toBe(false); + expect(utils.hasDecimals('abc', 18)).toBe(false); + expect(utils.hasDecimals('1abc0', 18)).toBe(false); + }); + + it('hasDecimals decimals=0', () => { + expect(utils.hasDecimals('0', 0)).toBe(true); + expect(utils.hasDecimals('0.1', 0)).toBe(false); + expect(utils.hasDecimals('0.12345', 0)).toBe(false); + expect(utils.hasDecimals('1', 0)).toBe(true); + expect(utils.hasDecimals('1.1', 0)).toBe(false); + expect(utils.hasDecimals('1000000', 0)).toBe(true); + expect(utils.hasDecimals('-1000000', 0)).toBe(false); + expect(utils.hasDecimals('.0', 0)).toBe(false); + expect(utils.hasDecimals('0.', 0)).toBe(false); + expect(utils.hasDecimals('.', 0)).toBe(false); }); it('hasUppercase', () => { @@ -48,16 +61,40 @@ describe('validators utils', () => { expect(utils.hasUppercase('0x123aBc456')).toBe(true); }); - it('isNumber decimals=0', () => { - expect(utils.isNumber('0', 0)).toBe(true); - expect(utils.isNumber('0.1', 0)).toBe(false); - expect(utils.isNumber('0.12345', 0)).toBe(false); - expect(utils.isNumber('1', 0)).toBe(true); - expect(utils.isNumber('1.1', 0)).toBe(false); - expect(utils.isNumber('1000000', 0)).toBe(true); - expect(utils.isNumber('-1000000', 0)).toBe(false); - expect(utils.isNumber('.0', 0)).toBe(false); - expect(utils.isNumber('0.', 0)).toBe(false); - expect(utils.isNumber('.', 0)).toBe(false); + it('isNumber', () => { + expect(utils.isNumber('0')).toBe(true); + expect(utils.isNumber('0.0')).toBe(true); + expect(utils.isNumber('0.00000000')).toBe(true); + expect(utils.isNumber('0.00000001')).toBe(true); + expect(utils.isNumber('+0.0')).toBe(false); + expect(utils.isNumber('-0.0')).toBe(false); + expect(utils.isNumber('1')).toBe(true); + expect(utils.isNumber('+1')).toBe(false); + expect(utils.isNumber('+100000')).toBe(false); + expect(utils.isNumber('.')).toBe(false); + expect(utils.isNumber('')).toBe(false); + expect(utils.isNumber(' ')).toBe(false); + expect(utils.isNumber('-.1')).toBe(false); + expect(utils.isNumber('0.1')).toBe(true); + expect(utils.isNumber('0.12314841')).toBe(true); + expect(utils.isNumber('0.1381841848184814818391931933')).toBe(true); //28 decimals + expect(utils.isNumber('0.100000000000000000')).toBe(true); //18s decimals + + expect(utils.isNumber('100.')).toBe(true); + expect(utils.isNumber('.1')).toBe(false); + expect(utils.isNumber('.000000001')).toBe(false); + expect(utils.isNumber('.13134818481481841')).toBe(false); + + expect(utils.isNumber('001.12314841')).toBe(false); + expect(utils.isNumber('83819319391491949941')).toBe(true); + expect(utils.isNumber('-83819319391491949941')).toBe(false); + expect(utils.isNumber('+0.131831848184')).toBe(false); + + expect(utils.isNumber('0.131831848184a')).toBe(false); + expect(utils.isNumber('100a')).toBe(false); + expect(utils.isNumber('.100a')).toBe(false); + expect(utils.isNumber('a.100')).toBe(false); + expect(utils.isNumber('abc')).toBe(false); + expect(utils.isNumber('1abc0')).toBe(false); }); }); diff --git a/src/utils/validators.js b/src/utils/validators.js index 99157c7f..0ae6c3d1 100644 --- a/src/utils/validators.js +++ b/src/utils/validators.js @@ -5,7 +5,7 @@ export const hasUppercase = (value: string) => { return UPPERCASE_RE.test(value); }; -export const isNumber = (value: string, decimals: number) => { +export const hasDecimals = (value: string, decimals: number) => { if (decimals === 0) { return isAbs(value); } @@ -21,10 +21,7 @@ export const isAbs = (value: string) => { return ABS_RE.test(value); }; -export const isEthereumNumber = (value: string) => { - return isNumber(value, 18); -}; - -export const isRippleNumber = (value: string) => { - return isNumber(value, 6); +export const isNumber = (value: string) => { + const ETH_18_RE = new RegExp(`^(0|0\\.([0-9]+)?|[1-9][0-9]*\\.?([0-9]+)?)$`); + return ETH_18_RE.test(value); }; From 88a005323561d028f34deeaee827e80dcf8836d0 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 22 Apr 2019 13:46:19 +0200 Subject: [PATCH 023/125] rename regexps --- src/utils/validators.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/utils/validators.js b/src/utils/validators.js index 0ae6c3d1..e2c0f0d0 100644 --- a/src/utils/validators.js +++ b/src/utils/validators.js @@ -10,10 +10,10 @@ export const hasDecimals = (value: string, decimals: number) => { return isAbs(value); } - const ETH_18_RE = new RegExp( + const ETH_DECIMALS_RE = new RegExp( `^(0|0\\.([0-9]{0,${decimals}})?|[1-9][0-9]*\\.?([0-9]{0,${decimals}})?)$` ); - return ETH_18_RE.test(value); + return ETH_DECIMALS_RE.test(value); }; export const isAbs = (value: string) => { @@ -22,6 +22,6 @@ export const isAbs = (value: string) => { }; export const isNumber = (value: string) => { - const ETH_18_RE = new RegExp(`^(0|0\\.([0-9]+)?|[1-9][0-9]*\\.?([0-9]+)?)$`); - return ETH_18_RE.test(value); + const NUMBER_RE = new RegExp(`^(0|0\\.([0-9]+)?|[1-9][0-9]*\\.?([0-9]+)?)$`); + return NUMBER_RE.test(value); }; From 5220dcf108a26f10f0f37b46b060918770504d28 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 22 Apr 2019 20:09:04 +0200 Subject: [PATCH 024/125] update TR_VISIBLE_COINS_EXPLAINED --- src/views/Wallet/views/WalletSettings/index.messages.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/Wallet/views/WalletSettings/index.messages.js b/src/views/Wallet/views/WalletSettings/index.messages.js index c669d4ab..12dd5832 100644 --- a/src/views/Wallet/views/WalletSettings/index.messages.js +++ b/src/views/Wallet/views/WalletSettings/index.messages.js @@ -26,7 +26,8 @@ const definedMessages: Messages = defineMessages({ }, TR_VISIBLE_COINS_EXPLAINED: { id: 'TR_VISIBLE_COINS_EXPLAINED', - defaultMessage: 'Select a coins which will be visible in wallet', + defaultMessage: + 'Select the coins you wish to see in the walet interface. You will be able to change your preferences later.', }, }); From 777f951a00b020a4032227e3fa222e526fa8fb5d Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 11:48:49 +0200 Subject: [PATCH 025/125] fix typo --- src/views/Wallet/views/WalletSettings/index.messages.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/Wallet/views/WalletSettings/index.messages.js b/src/views/Wallet/views/WalletSettings/index.messages.js index 12dd5832..b22ad616 100644 --- a/src/views/Wallet/views/WalletSettings/index.messages.js +++ b/src/views/Wallet/views/WalletSettings/index.messages.js @@ -27,7 +27,7 @@ const definedMessages: Messages = defineMessages({ TR_VISIBLE_COINS_EXPLAINED: { id: 'TR_VISIBLE_COINS_EXPLAINED', defaultMessage: - 'Select the coins you wish to see in the walet interface. You will be able to change your preferences later.', + 'Select the coins you wish to see in the wallet interface. You will be able to change your preferences later.', }, }); From bf47a1684b1669948f22219f67d88f70449439cf Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 12:13:13 +0200 Subject: [PATCH 026/125] move link --- .../LeftNavigation/components/CoinMenu/index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index 1162a5d7..ee3e7e20 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -34,7 +34,7 @@ const Empty = styled.span` `; const StyledLinkEmpty = styled(Link)` - padding: 0 5px; + padding: 0; `; const Gray = styled.span` @@ -121,8 +121,10 @@ class CoinMenu extends PureComponent { {this.isMenuEmpty() && ( - Select a coin - in application settings + + Select a coin in{' '} + application settings + )} {config.networks From 7abc4a61fe4e3e3c1cd4b00ee1590afb393df57f Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 13:44:08 +0200 Subject: [PATCH 027/125] fix selected coins at start, handle not visible coins properly --- src/actions/LocalStorageActions.js | 2 +- .../LeftNavigation/components/CoinMenu/index.js | 6 +++--- src/views/Wallet/views/Dashboard/index.js | 2 +- .../views/WalletSettings/components/Coins/index.js | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index bfc652cc..7f242269 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -367,7 +367,7 @@ export const handleCoinVisibility = ( let newConfig: Array = configuration; const isAlreadyHidden = configuration.find(coin => coin === coinShortcut); - if (isAlreadyHidden && shouldBeVisible) { + if (shouldBeVisible) { newConfig = configuration.filter(coin => coin !== coinShortcut); } else if (!isAlreadyHidden) { newConfig = [...configuration, coinShortcut]; diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index ee3e7e20..93be4c52 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -60,7 +60,7 @@ class CoinMenu extends PureComponent { return coins .sort((a, b) => a.order - b.order) .filter(item => !item.isHidden) // hide coins globally in config - .filter(item => hiddenCoins.includes(item.id)) + .filter(item => !hiddenCoins.includes(item.id)) .map(coin => { const row = ( { const { hiddenCoins } = this.props.wallet; const numberOfVisibleNetworks = coins .filter(item => !item.isHidden) - .filter(item => hiddenCoins.includes(item.id)); + .filter(item => !hiddenCoins.includes(item.id)); return numberOfVisibleNetworks.length <= 0; } @@ -129,7 +129,7 @@ class CoinMenu extends PureComponent { )} {config.networks .filter(item => !item.isHidden) // hide coins globally in config - .filter(item => hiddenCoins.includes(item.shortcut)) // hide coins by user settings + .filter(item => !hiddenCoins.includes(item.shortcut)) // hide coins by user settings .sort((a, b) => a.order - b.order) .map(item => ( ( {props.localStorage.config.networks .filter(item => !item.isHidden) - .filter(item => props.wallet.hiddenCoins.includes(item.shortcut)) + .filter(item => !props.wallet.hiddenCoins.includes(item.shortcut)) .map(network => ( ( { - props.handleCoinVisibility(network.shortcut, !isVisible); + onChange={visible => { + props.handleCoinVisibility(network.shortcut, visible); }} - checked={props.hiddenCoins.includes(network.shortcut)} + checked={!props.hiddenCoins.includes(network.shortcut)} /> @@ -139,10 +139,10 @@ const CoinsSettings = (props: Props) => ( { - props.handleCoinVisibility(network.id, !isVisible); + onChange={visible => { + props.handleCoinVisibility(network.id, visible); }} - checked={props.hiddenCoins.includes(network.id)} + checked={!props.hiddenCoins.includes(network.id)} /> From 97f372fe01f806ce4ca5194b79cf0941abaf7d19 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 13:46:03 +0200 Subject: [PATCH 028/125] fix empty case --- .../components/LeftNavigation/components/CoinMenu/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index 93be4c52..6d85c2bc 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -96,7 +96,7 @@ class CoinMenu extends PureComponent { isTopMenuEmpty() { const numberOfVisibleNetworks = this.props.localStorage.config.networks .filter(item => !item.isHidden) // hide coins globally in config - .filter(item => this.props.wallet.hiddenCoins.includes(item.shortcut)); + .filter(item => !this.props.wallet.hiddenCoins.includes(item.shortcut)); return numberOfVisibleNetworks.length <= 0; } From bbabdca732e53725074da84d7d36750e427a280d Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 13:58:05 +0200 Subject: [PATCH 029/125] add translations --- .../LeftNavigation/components/CoinMenu/index.js | 14 ++++++++++++-- .../components/CoinMenu/index.messages.js | 9 +++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index 6d85c2bc..5a63ef48 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -122,8 +122,18 @@ class CoinMenu extends PureComponent { {this.isMenuEmpty() && ( - Select a coin in{' '} - application settings + + + + ), + }} + />{' '} )} diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js index 78b43096..fa837418 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.messages.js @@ -7,6 +7,15 @@ const definedMessages: Messages = defineMessages({ id: 'TR_OTHER_COINS', defaultMessage: 'Other coins', }, + TR_SELECT_COINS: { + id: 'TR_SELECT_COINS', + description: 'COMPLETE SENTENCE: Select a coin in application settings', + defaultMessage: 'Select a coin in {TR_SELECT_COINS_LINK}', + }, + TR_SELECT_COINS_LINK: { + id: 'TR_SELECT_COINS_LINK', + defaultMessage: 'application settings', + }, }); export default definedMessages; From ee9ebd29160d0f1fcf6680a68e8a6e5745b10b61 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 14:35:07 +0200 Subject: [PATCH 030/125] smaller switch in settings, add show all --- src/actions/LocalStorageActions.js | 2 + .../Wallet/views/WalletSettings/Container.js | 5 ++ .../WalletSettings/components/Coins/index.js | 66 ++++++++++++++----- .../Wallet/views/WalletSettings/index.js | 5 ++ 4 files changed, 61 insertions(+), 17 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 7f242269..74e5d6f5 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -380,6 +380,8 @@ export const handleCoinVisibility = ( }); }; +// export const handleAllCoinsVisibility => (); + export const getHiddenCoins = (): Array => { const coinsConfig: ?string = storageUtils.get(TYPE, KEY_HIDDEN_COINS); if (coinsConfig) { diff --git a/src/views/Wallet/views/WalletSettings/Container.js b/src/views/Wallet/views/WalletSettings/Container.js index 3d30be05..70ff7869 100644 --- a/src/views/Wallet/views/WalletSettings/Container.js +++ b/src/views/Wallet/views/WalletSettings/Container.js @@ -23,6 +23,7 @@ type DispatchProps = {| setLocalCurrency: typeof WalletActions.setLocalCurrency, setHideBalance: typeof WalletActions.setHideBalance, handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, + // handleAllCoinsVisibility: typeof LocalStorageActions.handleAllCoinsVisibility, |}; export type Props = {| ...OwnProps, ...StateProps, ...DispatchProps |}; @@ -37,6 +38,10 @@ const mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({ setLocalCurrency: bindActionCreators(WalletActions.setLocalCurrency, dispatch), setHideBalance: bindActionCreators(WalletActions.setHideBalance, dispatch), handleCoinVisibility: bindActionCreators(LocalStorageActions.handleCoinVisibility, dispatch), + // handleAllCoinsVisibility: bindActionCreators( + // LocalStorageActions.handleAllCoinsVisibility, + // dispatch + // ), }); export default injectIntl( diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 7d3ae0ef..f95e3b42 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -35,6 +35,7 @@ const Content = styled.div` const Label = styled.div` display: flex; padding: 10px 0; + justify-content: space-between; color: ${colors.TEXT_SECONDARY}; align-items: center; `; @@ -66,7 +67,10 @@ const Left = styled.div` align-items: center; `; -const Right = styled.div``; +const Right = styled.div` + display: flex; + align-items: center; +`; const Name = styled.div` display: flex; @@ -86,14 +90,23 @@ const CoinsSettings = (props: Props) => ( {props.networks .filter(network => !network.isHidden) @@ -107,6 +120,11 @@ const CoinsSettings = (props: Props) => ( { props.handleCoinVisibility(network.shortcut, visible); }} @@ -118,14 +136,23 @@ const CoinsSettings = (props: Props) => ( {coins .sort((a, b) => a.order - b.order) @@ -139,6 +166,11 @@ const CoinsSettings = (props: Props) => ( { props.handleCoinVisibility(network.id, visible); }} diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index 33929d38..a9a6e020 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -103,6 +103,11 @@ const WalletSettings = (props: Props) => ( { props.setHideBalance(checked); }} From 2959271a40e15e2e6ba6ce3882a943726c55a632 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 14:36:32 +0200 Subject: [PATCH 031/125] use isSmall prop for switch size --- .../Wallet/views/WalletSettings/components/Coins/index.js | 8 ++------ src/views/Wallet/views/WalletSettings/index.js | 4 +--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index f95e3b42..724157f7 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -120,9 +120,7 @@ const CoinsSettings = (props: Props) => ( { @@ -166,9 +164,7 @@ const CoinsSettings = (props: Props) => ( { diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index a9a6e020..3642b6ba 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -103,9 +103,7 @@ const WalletSettings = (props: Props) => ( { From 59a3284e67ba8a3470118ce15648ecaade87e3cc Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 16:39:43 +0200 Subject: [PATCH 032/125] part of show all --- src/actions/LocalStorageActions.js | 31 ++++++++++++- .../Wallet/views/WalletSettings/Container.js | 10 ++--- .../WalletSettings/components/Coins/index.js | 43 ++++++++++++++++++- .../Wallet/views/WalletSettings/index.js | 6 ++- 4 files changed, 80 insertions(+), 10 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 74e5d6f5..d4f3badf 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -12,7 +12,6 @@ import * as buildUtils from 'utils/build'; import * as storageUtils from 'utils/storage'; import * as WalletActions from 'actions/WalletActions'; import * as l10nUtils from 'utils/l10n'; - import { getAccountTokens } from 'reducers/utils'; import type { Account } from 'reducers/AccountsReducer'; import type { Token } from 'reducers/TokensReducer'; @@ -380,7 +379,35 @@ export const handleCoinVisibility = ( }); }; -// export const handleAllCoinsVisibility => (); +export const handleAllCoinsVisibility = ( + checked: boolean, + allCoins: Array, + hiddenCoins: Array +): ThunkAction => (dispatch: Dispatch) => { + const configuration: Array = getHiddenCoins(); + const newConfig: Array = configuration; + let result = []; + + console.log('old config', newConfig); + + if (checked) { + const intersection = allCoins.filter(x => hiddenCoins.includes(x)); + if (intersection) { + result = newConfig.filter(x => !intersection.includes(x)); + } + } else { + const intersection = allCoins.filter(x => hiddenCoins.includes(x)); + console.log('intersection', intersection); + result = [configuration, ...intersection]; + } + + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins: result, + }); + + storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(result)); +}; export const getHiddenCoins = (): Array => { const coinsConfig: ?string = storageUtils.get(TYPE, KEY_HIDDEN_COINS); diff --git a/src/views/Wallet/views/WalletSettings/Container.js b/src/views/Wallet/views/WalletSettings/Container.js index 70ff7869..0e185bb6 100644 --- a/src/views/Wallet/views/WalletSettings/Container.js +++ b/src/views/Wallet/views/WalletSettings/Container.js @@ -23,7 +23,7 @@ type DispatchProps = {| setLocalCurrency: typeof WalletActions.setLocalCurrency, setHideBalance: typeof WalletActions.setHideBalance, handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, - // handleAllCoinsVisibility: typeof LocalStorageActions.handleAllCoinsVisibility, + handleAllCoinsVisibility: typeof LocalStorageActions.handleAllCoinsVisibility, |}; export type Props = {| ...OwnProps, ...StateProps, ...DispatchProps |}; @@ -38,10 +38,10 @@ const mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({ setLocalCurrency: bindActionCreators(WalletActions.setLocalCurrency, dispatch), setHideBalance: bindActionCreators(WalletActions.setHideBalance, dispatch), handleCoinVisibility: bindActionCreators(LocalStorageActions.handleCoinVisibility, dispatch), - // handleAllCoinsVisibility: bindActionCreators( - // LocalStorageActions.handleAllCoinsVisibility, - // dispatch - // ), + handleAllCoinsVisibility: bindActionCreators( + LocalStorageActions.handleAllCoinsVisibility, + dispatch + ), }); export default injectIntl( diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 724157f7..8b86ed2f 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -14,6 +14,7 @@ type Props = { networks: Array, hiddenCoins: Array, handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, + handleAllCoinsVisibility: typeof LocalStorageActions.handleAllCoinsVisibility, }; const Wrapper = styled.div` @@ -85,6 +86,10 @@ const LogoWrapper = styled.div` align-items: center; `; +const ToggleAll = styled.span` + cursor: pointer; +`; + const CoinsSettings = (props: Props) => ( @@ -106,7 +111,25 @@ const CoinsSettings = (props: Props) => ( /> - Show all + + { + const allCoins = props.networks + .filter(x => !x.isHidden) + .map(item => item.shortcut); + + props.handleAllCoinsVisibility( + checked, + allCoins, + props.hiddenCoins + ); + }} + > + {props.hiddenCoins.every(val => props.networks.includes(val)) + ? 'Hide all' + : 'Show all'} + + {props.networks .filter(network => !network.isHidden) @@ -150,7 +173,23 @@ const CoinsSettings = (props: Props) => ( /> - Show all + + { + const allCoins = coins + .filter(x => !x.isHidden) + .map(coin => coin.id); + + props.handleAllCoinsVisibility( + checked, + allCoins, + props.hiddenCoins + ); + }} + > + Show all + + {coins .sort((a, b) => a.order - b.order) diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index 3642b6ba..677cd5f2 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -73,7 +73,10 @@ const TooltipIcon = styled(Icon)` `; const buildCurrencyOption = currency => { - return { value: currency, label: currency.toUpperCase() }; + return { + value: currency, + label: currency.toUpperCase(), + }; }; const WalletSettings = (props: Props) => ( @@ -117,6 +120,7 @@ const WalletSettings = (props: Props) => ( From 15cfcee50027fb4da576cff5596fd958f268b3da Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 23 Apr 2019 16:44:52 +0200 Subject: [PATCH 033/125] remove show all --- .../Wallet/views/WalletSettings/components/Coins/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 724157f7..fea41bda 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -106,7 +106,7 @@ const CoinsSettings = (props: Props) => ( /> - Show all + {props.networks .filter(network => !network.isHidden) @@ -150,7 +150,7 @@ const CoinsSettings = (props: Props) => ( /> - Show all + {coins .sort((a, b) => a.order - b.order) From 8d399ff327386eed2b83694b41195ec9004d6147 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Tue, 23 Apr 2019 17:02:25 +0200 Subject: [PATCH 034/125] auto reconnect to the backend --- src/actions/BlockchainActions.js | 32 +++++++++++++++++++++++++++++ src/actions/DiscoveryActions.js | 23 ++++++++++++++++++--- src/actions/constants/blockchain.js | 1 + src/reducers/BlockchainReducer.js | 26 +++++++++++++++++++++++ 4 files changed, 79 insertions(+), 3 deletions(-) diff --git a/src/actions/BlockchainActions.js b/src/actions/BlockchainActions.js index afb967bf..e2650ac9 100644 --- a/src/actions/BlockchainActions.js +++ b/src/actions/BlockchainActions.js @@ -1,6 +1,7 @@ /* @flow */ import * as BLOCKCHAIN from 'actions/constants/blockchain'; +import * as DiscoveryActions from 'actions/DiscoveryActions'; import * as EthereumBlockchainActions from 'actions/ethereum/BlockchainActions'; import * as RippleBlockchainActions from 'actions/ripple/BlockchainActions'; @@ -19,6 +20,10 @@ export type BlockchainAction = | { type: typeof BLOCKCHAIN.START_SUBSCRIBE, shortcut: string, + } + | { + type: typeof BLOCKCHAIN.FAIL_SUBSCRIBE, + shortcut: string, }; // Conditionally subscribe to blockchain backend @@ -128,6 +133,8 @@ export const onError = ( const network = config.networks.find(c => c.shortcut === shortcut); if (!network) return; + dispatch(autoReconnect(shortcut)); + switch (network.type) { case 'ethereum': await dispatch(EthereumBlockchainActions.onError(shortcut)); @@ -140,3 +147,28 @@ export const onError = ( break; } }; + +const autoReconnect = (shortcut: string): PromiseAction => async ( + dispatch: Dispatch, + getState: GetState +): Promise => { + const MAX_ATTEMPTS = 4; + let blockchain = getState().blockchain.find(b => b.shortcut === shortcut); + // try to automatically reconnect and wait after each attemp (5s * #attempt) untill max number of attemps is reached + for (let i = 0; i < MAX_ATTEMPTS; i++) { + const waitTime = 5000 * (i + 1); /// 5s * #attempt + if (!blockchain || blockchain.connected) { + break; + } + + blockchain = getState().blockchain.find(b => b.shortcut === shortcut); + + // reconnect with 7s timeout + // eslint-disable-next-line no-await-in-loop + await dispatch(DiscoveryActions.reconnect(shortcut, 7000)); + + // wait before next try + // eslint-disable-next-line no-await-in-loop + await new Promise(resolve => setTimeout(resolve, waitTime)); + } +}; diff --git a/src/actions/DiscoveryActions.js b/src/actions/DiscoveryActions.js index 22ca82a0..d61f2085 100644 --- a/src/actions/DiscoveryActions.js +++ b/src/actions/DiscoveryActions.js @@ -1,6 +1,7 @@ /* @flow */ import TrezorConnect, { UI } from 'trezor-connect'; +import * as BLOCKCHAIN_ACTION from 'actions/constants/blockchain'; import * as DISCOVERY from 'actions/constants/discovery'; import * as ACCOUNT from 'actions/constants/account'; import * as NOTIFICATION from 'actions/constants/notification'; @@ -325,11 +326,27 @@ const finish = (device: TrezorDevice, discoveryProcess: Discovery): AsyncAction }); }; -export const reconnect = (network: string): PromiseAction => async ( +export const reconnect = (network: string, timeout: number = 30): PromiseAction => async ( dispatch: Dispatch ): Promise => { - await dispatch(BlockchainActions.subscribe(network)); - dispatch(restore()); + // Runs two promises. + // First promise is a subscribe action which will never resolve in case of completely lost connection to the backend + // That's why there is a second promise that rejects after the specified timeout. + return Promise.race([ + dispatch(BlockchainActions.subscribe(network)), + new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeout)), + ]) + .catch(() => { + // catch error from first promises that rejects (most likely timeout) + dispatch({ + type: BLOCKCHAIN_ACTION.FAIL_SUBSCRIBE, + shortcut: network, + }); + }) + .then(() => { + // dispatch restore when subscribe promise resolves + dispatch(restore()); + }); }; // Called after DEVICE.CONNECT ('trezor-connect') or CONNECT.AUTH_DEVICE actions in WalletService diff --git a/src/actions/constants/blockchain.js b/src/actions/constants/blockchain.js index 3cdd0a2e..3cd6b50d 100644 --- a/src/actions/constants/blockchain.js +++ b/src/actions/constants/blockchain.js @@ -1,5 +1,6 @@ /* @flow */ export const START_SUBSCRIBE: 'blockchain__start_subscribe' = 'blockchain__start_subscribe'; +export const FAIL_SUBSCRIBE: 'blockchain__fail_subscribe' = 'blockchain__fail_subscribe'; export const READY: 'blockchain__ready' = 'blockchain__ready'; export const UPDATE_FEE: 'blockchain__update_fee' = 'blockchain__update_fee'; diff --git a/src/reducers/BlockchainReducer.js b/src/reducers/BlockchainReducer.js index 745a44b4..865f1f2f 100644 --- a/src/reducers/BlockchainReducer.js +++ b/src/reducers/BlockchainReducer.js @@ -48,6 +48,30 @@ const onStartSubscribe = (state: State, shortcut: string): State => { ]); }; +const onFailSubscribe = (state: State, shortcut: string): State => { + const network = state.find(b => b.shortcut === shortcut); + if (network) { + const others = state.filter(b => b !== network); + return others.concat([ + { + ...network, + connecting: false, + }, + ]); + } + + return state.concat([ + { + shortcut, + connected: false, + connecting: false, + block: 0, + feeTimestamp: 0, + feeLevels: [], + }, + ]); +}; + const onConnect = (state: State, action: BlockchainConnect): State => { const shortcut = action.payload.coin.shortcut.toLowerCase(); const network = state.find(b => b.shortcut === shortcut); @@ -136,6 +160,8 @@ export default (state: State = initialState, action: Action): State => { switch (action.type) { case BLOCKCHAIN_ACTION.START_SUBSCRIBE: return onStartSubscribe(state, action.shortcut); + case BLOCKCHAIN_ACTION.FAIL_SUBSCRIBE: + return onFailSubscribe(state, action.shortcut); case BLOCKCHAIN_EVENT.CONNECT: return onConnect(state, action); case BLOCKCHAIN_EVENT.ERROR: From d284bfd65699318f771750c7087fa696ca17d42d Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 24 Apr 2019 12:28:05 +0200 Subject: [PATCH 035/125] fix condition fow showing qr code --- .../views/Account/Receive/ethereum/index.js | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/views/Wallet/views/Account/Receive/ethereum/index.js b/src/views/Wallet/views/Account/Receive/ethereum/index.js index ad971272..c5813bf0 100644 --- a/src/views/Wallet/views/Account/Receive/ethereum/index.js +++ b/src/views/Wallet/views/Account/Receive/ethereum/index.js @@ -177,21 +177,21 @@ const AccountReceive = (props: Props) => { )} - {((addressVerified || addressUnverified) && !isAddressVerifying) || - (account.imported && ( - - - - - ))} + {(((addressVerified || addressUnverified) && !isAddressVerifying) || + account.imported) && ( + + + + + )} From e32d7a32bd386496c67e665d30ec8f569c45ec4a Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 24 Apr 2019 14:05:07 +0200 Subject: [PATCH 036/125] split hidden coins, toggle all --- src/actions/LocalStorageActions.js | 106 +++++++++++------- src/actions/WalletActions.js | 4 + src/actions/constants/wallet.js | 2 + src/reducers/WalletReducer.js | 8 ++ .../Wallet/views/WalletSettings/Container.js | 6 +- .../WalletSettings/components/Coins/index.js | 29 ++--- .../Wallet/views/WalletSettings/index.js | 3 +- 7 files changed, 99 insertions(+), 59 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index d4f3badf..c2fb7790 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -60,6 +60,7 @@ const KEY_LANGUAGE: string = `${STORAGE_PATH}language`; const KEY_LOCAL_CURRENCY: string = `${STORAGE_PATH}localCurrency`; const KEY_HIDE_BALANCE: string = `${STORAGE_PATH}hideBalance`; const KEY_HIDDEN_COINS: string = `${STORAGE_PATH}hiddenCoins`; +const KEY_HIDDEN_COINS_EXTERNAL: string = `${STORAGE_PATH}hiddenCoinsExternal`; // https://github.com/STRML/react-localstorage/blob/master/react-localstorage.js // or @@ -247,13 +248,18 @@ const loadStorageData = (): ThunkAction => (dispatch: Dispatch): void => { }); } - const hiddenCoins = getHiddenCoins(); - if (hiddenCoins) { - dispatch({ - type: WALLET.SET_HIDDEN_COINS, - hiddenCoins, - }); - } + const hiddenCoins = getHiddenCoins(false); + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins, + }); + + const isExternal = true; + const hiddenCoinsExternal = getHiddenCoins(isExternal); + dispatch({ + type: WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal, + }); const userTokens: ?string = storageUtils.get(TYPE, KEY_TOKENS); if (userTokens) { @@ -360,9 +366,10 @@ export const getImportedAccounts = (): ?Array => { export const handleCoinVisibility = ( coinShortcut: string, - shouldBeVisible: boolean + shouldBeVisible: boolean, + isExternal: boolean ): ThunkAction => (dispatch: Dispatch): void => { - const configuration: Array = getHiddenCoins(); + const configuration: Array = getHiddenCoins(isExternal); let newConfig: Array = configuration; const isAlreadyHidden = configuration.find(coin => coin === coinShortcut); @@ -372,45 +379,68 @@ export const handleCoinVisibility = ( newConfig = [...configuration, coinShortcut]; } - storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(newConfig)); - dispatch({ - type: WALLET.SET_HIDDEN_COINS, - hiddenCoins: newConfig, - }); + console.log(coinShortcut, shouldBeVisible, isExternal); + + if (isExternal) { + storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify(newConfig)); + dispatch({ + type: WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal: newConfig, + }); + } else { + storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(newConfig)); + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins: newConfig, + }); + } }; -export const handleAllCoinsVisibility = ( - checked: boolean, +export const toggleGroupCoinsVisibility = ( allCoins: Array, - hiddenCoins: Array + checked: boolean, + isExternal: boolean ): ThunkAction => (dispatch: Dispatch) => { - const configuration: Array = getHiddenCoins(); - const newConfig: Array = configuration; - let result = []; - - console.log('old config', newConfig); + if (checked && isExternal) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal: [], + }); + storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify([])); + } - if (checked) { - const intersection = allCoins.filter(x => hiddenCoins.includes(x)); - if (intersection) { - result = newConfig.filter(x => !intersection.includes(x)); - } - } else { - const intersection = allCoins.filter(x => hiddenCoins.includes(x)); - console.log('intersection', intersection); - result = [configuration, ...intersection]; + if (!checked && isExternal) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal: allCoins, + }); + storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify(allCoins)); } - dispatch({ - type: WALLET.SET_HIDDEN_COINS, - hiddenCoins: result, - }); + if (checked && !isExternal) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins: [], + }); + storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify([])); + } - storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(result)); + if (!checked && !isExternal) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS, + hiddenCoins: allCoins, + }); + storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(allCoins)); + } }; -export const getHiddenCoins = (): Array => { - const coinsConfig: ?string = storageUtils.get(TYPE, KEY_HIDDEN_COINS); +export const getHiddenCoins = (isExternal: boolean): Array => { + let coinsConfig: ?string = ''; + if (isExternal) { + coinsConfig = storageUtils.get(TYPE, KEY_HIDDEN_COINS_EXTERNAL); + } else { + coinsConfig = storageUtils.get(TYPE, KEY_HIDDEN_COINS); + } if (coinsConfig) { return JSON.parse(coinsConfig); } diff --git a/src/actions/WalletActions.js b/src/actions/WalletActions.js index 221c7c1d..ed84b5e8 100644 --- a/src/actions/WalletActions.js +++ b/src/actions/WalletActions.js @@ -29,6 +29,10 @@ export type WalletAction = type: typeof WALLET.SET_HIDDEN_COINS, hiddenCoins: Array, } + | { + type: typeof WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal: Array, + } | { type: typeof WALLET.TOGGLE_DEVICE_DROPDOWN, opened: boolean, diff --git a/src/actions/constants/wallet.js b/src/actions/constants/wallet.js index a32cddfa..562cd539 100644 --- a/src/actions/constants/wallet.js +++ b/src/actions/constants/wallet.js @@ -20,3 +20,5 @@ export const SET_LANGUAGE: 'wallet__set_language' = 'wallet__set_language'; export const SET_LOCAL_CURRENCY: 'wallet__set_local_currency' = 'wallet__set_local_currency'; export const SET_HIDE_BALANCE: 'wallet__set_hide_balance' = 'wallet__set_hide_balance'; export const SET_HIDDEN_COINS: 'wallet__set_hidden_coins' = 'wallet__set_hidden_coins'; +export const SET_HIDDEN_COINS_EXTERNAL: 'wallet__set_hidden_coins_external' = + 'wallet__set_hidden_coins_external'; diff --git a/src/reducers/WalletReducer.js b/src/reducers/WalletReducer.js index 9a940e0a..04d3a15e 100644 --- a/src/reducers/WalletReducer.js +++ b/src/reducers/WalletReducer.js @@ -25,6 +25,7 @@ type State = { disconnectRequest: ?TrezorDevice, selectedDevice: ?TrezorDevice, hiddenCoins: Array, + hiddenCoinsExternal: Array, }; const initialState: State = { @@ -43,6 +44,7 @@ const initialState: State = { disconnectRequest: null, selectedDevice: null, hiddenCoins: [], + hiddenCoinsExternal: [], }; export default function wallet(state: State = initialState, action: Action): State { @@ -153,6 +155,12 @@ export default function wallet(state: State = initialState, action: Action): Sta hiddenCoins: action.hiddenCoins, }; + case WALLET.SET_HIDDEN_COINS_EXTERNAL: + return { + ...state, + hiddenCoinsExternal: action.hiddenCoinsExternal, + }; + default: return state; } diff --git a/src/views/Wallet/views/WalletSettings/Container.js b/src/views/Wallet/views/WalletSettings/Container.js index 0e185bb6..56a5a4ff 100644 --- a/src/views/Wallet/views/WalletSettings/Container.js +++ b/src/views/Wallet/views/WalletSettings/Container.js @@ -23,7 +23,7 @@ type DispatchProps = {| setLocalCurrency: typeof WalletActions.setLocalCurrency, setHideBalance: typeof WalletActions.setHideBalance, handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, - handleAllCoinsVisibility: typeof LocalStorageActions.handleAllCoinsVisibility, + toggleGroupCoinsVisibility: typeof LocalStorageActions.toggleGroupCoinsVisibility, |}; export type Props = {| ...OwnProps, ...StateProps, ...DispatchProps |}; @@ -38,8 +38,8 @@ const mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({ setLocalCurrency: bindActionCreators(WalletActions.setLocalCurrency, dispatch), setHideBalance: bindActionCreators(WalletActions.setHideBalance, dispatch), handleCoinVisibility: bindActionCreators(LocalStorageActions.handleCoinVisibility, dispatch), - handleAllCoinsVisibility: bindActionCreators( - LocalStorageActions.handleAllCoinsVisibility, + toggleGroupCoinsVisibility: bindActionCreators( + LocalStorageActions.toggleGroupCoinsVisibility, dispatch ), }); diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 8b86ed2f..c2215c06 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -13,8 +13,9 @@ import l10nMessages from '../../index.messages'; type Props = { networks: Array, hiddenCoins: Array, + hiddenCoinsExternal: Array, handleCoinVisibility: typeof LocalStorageActions.handleCoinVisibility, - handleAllCoinsVisibility: typeof LocalStorageActions.handleAllCoinsVisibility, + toggleGroupCoinsVisibility: typeof LocalStorageActions.toggleGroupCoinsVisibility, }; const Wrapper = styled.div` @@ -118,16 +119,10 @@ const CoinsSettings = (props: Props) => ( .filter(x => !x.isHidden) .map(item => item.shortcut); - props.handleAllCoinsVisibility( - checked, - allCoins, - props.hiddenCoins - ); + props.toggleGroupCoinsVisibility(allCoins, checked, false); }} > - {props.hiddenCoins.every(val => props.networks.includes(val)) - ? 'Hide all' - : 'Show all'} + {props.hiddenCoins.length > 0 ? 'Show all' : 'Hide all'} @@ -147,7 +142,11 @@ const CoinsSettings = (props: Props) => ( checkedIcon={false} uncheckedIcon={false} onChange={visible => { - props.handleCoinVisibility(network.shortcut, visible); + props.handleCoinVisibility( + network.shortcut, + visible, + false + ); }} checked={!props.hiddenCoins.includes(network.shortcut)} /> @@ -180,11 +179,7 @@ const CoinsSettings = (props: Props) => ( .filter(x => !x.isHidden) .map(coin => coin.id); - props.handleAllCoinsVisibility( - checked, - allCoins, - props.hiddenCoins - ); + props.toggleGroupCoinsVisibility(allCoins, checked, true); }} > Show all @@ -207,9 +202,9 @@ const CoinsSettings = (props: Props) => ( checkedIcon={false} uncheckedIcon={false} onChange={visible => { - props.handleCoinVisibility(network.id, visible); + props.handleCoinVisibility(network.id, visible, true); }} - checked={!props.hiddenCoins.includes(network.id)} + checked={!props.hiddenCoinsExternal.includes(network.id)} /> diff --git a/src/views/Wallet/views/WalletSettings/index.js b/src/views/Wallet/views/WalletSettings/index.js index 677cd5f2..a9b4626b 100644 --- a/src/views/Wallet/views/WalletSettings/index.js +++ b/src/views/Wallet/views/WalletSettings/index.js @@ -120,8 +120,9 @@ const WalletSettings = (props: Props) => ( From 9dcd7a310f885c731f507b786969290833af602d Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 24 Apr 2019 14:25:33 +0200 Subject: [PATCH 037/125] update locales --- public/l10n/af.json | 26 ++++++++++++++++++++++++-- public/l10n/ar.json | 26 ++++++++++++++++++++++++-- public/l10n/bn.json | 26 ++++++++++++++++++++++++-- public/l10n/cs.json | 26 ++++++++++++++++++++++++-- public/l10n/de.json | 26 ++++++++++++++++++++++++-- public/l10n/el.json | 26 ++++++++++++++++++++++++-- public/l10n/en.json | 26 ++++++++++++++++++++++++-- public/l10n/es.json | 26 ++++++++++++++++++++++++-- public/l10n/et.json | 26 ++++++++++++++++++++++++-- public/l10n/fa.json | 26 ++++++++++++++++++++++++-- public/l10n/fr.json | 26 ++++++++++++++++++++++++-- public/l10n/he.json | 26 ++++++++++++++++++++++++-- public/l10n/hi.json | 26 ++++++++++++++++++++++++-- public/l10n/hu.json | 26 ++++++++++++++++++++++++-- public/l10n/id.json | 26 ++++++++++++++++++++++++-- public/l10n/it.json | 26 ++++++++++++++++++++++++-- public/l10n/ja.json | 26 ++++++++++++++++++++++++-- public/l10n/ko.json | 26 ++++++++++++++++++++++++-- public/l10n/nl.json | 26 ++++++++++++++++++++++++-- public/l10n/no.json | 26 ++++++++++++++++++++++++-- public/l10n/pl.json | 26 ++++++++++++++++++++++++-- public/l10n/pt.json | 26 ++++++++++++++++++++++++-- public/l10n/ru.json | 26 ++++++++++++++++++++++++-- public/l10n/sv-SE.json | 26 ++++++++++++++++++++++++-- public/l10n/tr.json | 26 ++++++++++++++++++++++++-- public/l10n/uk.json | 26 ++++++++++++++++++++++++-- public/l10n/vi.json | 26 ++++++++++++++++++++++++-- public/l10n/zh-TW.json | 26 ++++++++++++++++++++++++-- public/l10n/zh.json | 26 ++++++++++++++++++++++++-- translations/master.json | 17 +++++++++++++++++ 30 files changed, 713 insertions(+), 58 deletions(-) diff --git a/public/l10n/af.json b/public/l10n/af.json index ebfe6dd6..0da38b1d 100644 --- a/public/l10n/af.json +++ b/public/l10n/af.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Close", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Send", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Address", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Forget device", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Add account", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/ar.json b/public/l10n/ar.json index ebfe6dd6..0da38b1d 100644 --- a/public/l10n/ar.json +++ b/public/l10n/ar.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Close", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Send", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Address", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Forget device", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Add account", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/bn.json b/public/l10n/bn.json index b7763669..32680118 100644 --- a/public/l10n/bn.json +++ b/public/l10n/bn.json @@ -1,6 +1,8 @@ { "TR_TERMS": "শর্তাবলী", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "বন্ধ করুন", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "সহায়তা", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "দৃষ্টি আকর্ষণ: লগটি আপনার XPUBs ধারণ করে। XPUBs ধারি যে কেউ আপনার অ্যাকাউন্টের ইতিহাস দেখতে পারবে।", "TR_LOG": "লগ", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "পাঠান", "TR_FEE_LABEL": "ফি", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "আপনি আপনার গুপ্ত-বাক্যাংশ ভুলে গিয়ে থাকেন, আপনার ওয়ালেট চিরদিনের জন্য হারিয়ে ফেলেছেন। আপনার অর্থ পুনরুদ্ধার করার কোন উপায় নেই।", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "পরিষ্কার", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "ঠিকানা", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "ডিভাইসটি বিস্মৃত হন", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Trezor Beta Wallet খোলা হচ্ছে", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Trezor নাই? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "অ্যাকাউন্ট যোগ করার জন্য, নিশ্চিত করুন যে আপনার ডিভাইস সংযুক্ত আছে।", "TR_ADD_ACCOUNT": "একাউন্ট যোগ করুন", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "ব্যালেন্স", "TR_RATE": "হার", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/cs.json b/public/l10n/cs.json index be69e74f..2d88a5e4 100644 --- a/public/l10n/cs.json +++ b/public/l10n/cs.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Podmínky", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Zavřít", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Zákaznická Podpora", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Varování: Tento log může obsahovat Váš XPUB. Pokud jej předáte třetí straně, umožňujete jí vidět celou Vaši transakční historii.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Potvrďte akci na Vašem Trezoru", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Odeslat", "TR_FEE_LABEL": "Poplatek", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Ujistěte se, že stahujete univerzálního klienta pro podporu Trezoru.", "TR_GO_TO_NEM_DOT_IO": "Pokračujte na nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Poznámka: Přístupová fráze rozlišuje velká/malá písmena.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Pokud zapomenete přístupovou frázi, Vaše peněženka je navždy ztracena. Neexistuje žádný způsob, jak obnovit Vaše finanční prostředky.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Vymazat", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adresa", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Zapomenout zařízení", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Otevíráte beta verzi Trezor Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Zařízení nebylo rozpoznáno? Zkuste nainstalovat {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Ještě nemáte Trezor? {getOne}", "TR_GET_ONE": "Jeden si pořiďte", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Nový nástroj pro usnadnění komunikace mezi vaším Trezorem a internetovým prohlížečem.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Pro přidání účtů se ujistěte, že je Trezor připojen.", "TR_ADD_ACCOUNT": "Přidat účet", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Zůstatek", "TR_RATE": "Kurz", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/de.json b/public/l10n/de.json index 058fb732..c3f5cf0d 100644 --- a/public/l10n/de.json +++ b/public/l10n/de.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Bedingungen", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Schließen", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Warnung: Dieser Log enthält Ihre XPUBs. Dritte können über Ihre XPUBs Ihren gesamten Transaktionsverlauf einsehen.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Aktion auf dem Trezor bestätigen", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Senden", "TR_FEE_LABEL": "Gebühr", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Laden Sie sich für Trezor-Unterstützung den Universal Client herunter.", "TR_GO_TO_NEM_DOT_IO": "Zu nem.io wechseln", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Hinweis: Groß-/Kleinschreibung wird beachtet.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Wenn Sie Ihre Passphrase vergessen, haben Sie keinen Zugriff mehr auf Ihr Wallet. Es gibt keinen Weg, Ihre Geldmittel wiederherzustellen.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Zurücksetzen", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adresse", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Gerät vergessen", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Sie öffnen jetzt das Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Gerät nicht erkannt? Installieren Sie {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Sie haben noch keinen Trezor? {getOne}", "TR_GET_ONE": "Holen Sie sich einen", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Ein neues Kommunikations-Tool zur Vereinfachung der Verbindung zwischen Ihrem Trezor und Ihrem Internet-Browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Um Konten hinzuzufügen, stellen Sie sicher, dass Ihr Gerät angeschlossen ist.", "TR_ADD_ACCOUNT": "Konto hinzufügen", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Saldo", "TR_RATE": "Kurs", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/el.json b/public/l10n/el.json index d0852ba2..a4a6c766 100644 --- a/public/l10n/el.json +++ b/public/l10n/el.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Όροι", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Κλείσιμο", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Υποστήριξη", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Προειδοποίηση: Αυτό το αρχείο καταγραφής μπορεί να περιέχει τα XPUB σας. Όταν το δίνετε σε τρίτους, του επιτρέπετε να δει όλο το ιστορικό συναλλαγής.", "TR_LOG": "Αρχείο καταγραφής", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Αποστολή", "TR_FEE_LABEL": "Προμήθεια", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Εάν ξεχάσετε τη φράση πρόσβασής σας, το πορτοφόλι σας θα χαθεί για πάντα. Δεν υπάρχει τρόπος να ανακτήσετε τα κεφάλαιά σας.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Καθαρισμός", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Διεύθυνση", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Ξεχάστε τη συσκευή", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Τώρα ανοίγετε το δοκιμαστικό/Beta Πορτοφόλι του Trezor", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Δεν έχετε Trezor; {getOne}", "TR_GET_ONE": "Πάρ'τε ένα", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Για να προσθέσετε λογαριασμούς, βεβαιωθείτε ότι η συσκευή είναι συνδεδεμένη.", "TR_ADD_ACCOUNT": "Προσθήκη λογαριασμού", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Υπόλοιπο", "TR_RATE": "Βαθμολογήστε", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/en.json b/public/l10n/en.json index ebfe6dd6..0da38b1d 100644 --- a/public/l10n/en.json +++ b/public/l10n/en.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Close", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Send", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Address", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Forget device", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Add account", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/es.json b/public/l10n/es.json index 89100e06..e14747cc 100644 --- a/public/l10n/es.json +++ b/public/l10n/es.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Términos", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Cerrar", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Soporte", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Advertencia: Este registro puede contener sus XPUB. Cualquiera con sus XPUB podrá ver su historial de transacciones.", "TR_LOG": "Registro", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirme la acción en su Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Enviar", "TR_FEE_LABEL": "Comisión", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Asegúrese de descargar el Cliente Universal para compatibilidad con Trezor.", "TR_GO_TO_NEM_DOT_IO": "Ir a nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Atención: la frase de contraseña es sensible al uso de mayúsculas y minúsculas.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Si olvida su frase de contraseña, su monedero se perderá para siempre. No hay forma de recuperar sus fondos.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Dirección", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Olvidar el dispositivo", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Estás abriendo el monedero Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "¿Dispositivo no reconocido? Pruebe instalar el {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "¿No tiene Trezor? {getOne}", "TR_GET_ONE": "Consiga uno", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Nueva herramienta de comunicación para facilitar la conexión entre su Trezor y su navegador de internet.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Para agregar cuentas, asegúrese de que el dispositivo está conectado y que la última cuenta no esté vacía.", "TR_ADD_ACCOUNT": "Añadir cuenta", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Saldo", "TR_RATE": "Tipo de cambio", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/et.json b/public/l10n/et.json index 784601cb..0c12df34 100644 --- a/public/l10n/et.json +++ b/public/l10n/et.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Sulge", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Tähelepanu: Logi sisaldab teie XPUBi. Igaüks kellel on ligipääs teie XPUBile saab näha teie konto ajalugu.", "TR_LOG": "Logi", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Saada", "TR_FEE_LABEL": "Tasu", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Tühjenda", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Address", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Unusta seade", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Ei ole Trezorit? {getOne}", "TR_GET_ONE": "Võta üks", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Lisa konto", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Saldo", "TR_RATE": "Hinna suhe", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/fa.json b/public/l10n/fa.json index ebfe6dd6..0da38b1d 100644 --- a/public/l10n/fa.json +++ b/public/l10n/fa.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Close", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Send", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Address", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Forget device", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Add account", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/fr.json b/public/l10n/fr.json index bd65e99a..a3e199fb 100644 --- a/public/l10n/fr.json +++ b/public/l10n/fr.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Conditions", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Fermer", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Assistance", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention : ce journal contient vos XPUB. Quiconque ayant accès à vos XPUB peut consulter l'historique de votre compte.", "TR_LOG": "Journal", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirmez l'action sur votre Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Envoyer", "TR_FEE_LABEL": "Frais", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Assurez-vous de télécharger le client universel pour la prise en charge du Trezor.", "TR_GO_TO_NEM_DOT_IO": "Aller sur nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Remarque : la phrase de passe est sensible à la casse.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Si vous oubliez votre phrase de passe, votre portefeuille est définitivement perdu. Il est impossible de récupérer vos fonds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Effacer", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adresse", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Oublier l'appareil", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Vous ouvrez un Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "L'appareil n'est pas reconnu ? Essayez d'installer {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Vous n'avez pas de Trezor ? {getOne}", "TR_GET_ONE": "Obtenez-en un", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Un nouvel outil de communication pour faciliter la connexion entre votre Trezor et votre navigateur internet.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Pour ajouter des comptes, assurez vous que l'appareil est connecté.", "TR_ADD_ACCOUNT": "Ajouter un compte", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Solde", "TR_RATE": "Taux", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/he.json b/public/l10n/he.json index 338914c5..599fe6c3 100644 --- a/public/l10n/he.json +++ b/public/l10n/he.json @@ -1,6 +1,8 @@ { "TR_TERMS": "תנאי שימוש", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "סגירה", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "תמיכה", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "אזהרה: יומן הרישום מכיל את המפתחות הציבוריים של החשבון (XPUB). אדם עם גישה ל XPUB יכול לראות את היסטוריית החשבון שלכם.", "TR_LOG": "יומן רישום", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "שליחה", "TR_FEE_LABEL": "עמלה", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "אם תשכחו את ה passphrase, הארנק שלכם ילך לטמיון. אין דרך להשיב את נכסיכם.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "ניקוי", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "כתובת", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "שכח התקן", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "פתיחת ארנק Trezor בטה", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "אין לכם Trezor? {getOne}", "TR_GET_ONE": "השיגו אחד", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "על מנת להוסיף חשבונות, וודאו שההתקן מחובר.", "TR_ADD_ACCOUNT": "הוספת חשבון", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "יתרה", "TR_RATE": "שער", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/hi.json b/public/l10n/hi.json index ebfe6dd6..0da38b1d 100644 --- a/public/l10n/hi.json +++ b/public/l10n/hi.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Close", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Send", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Address", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Forget device", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Add account", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/hu.json b/public/l10n/hu.json index 018db56e..aafda9af 100644 --- a/public/l10n/hu.json +++ b/public/l10n/hu.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Feltételek", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Bezár", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Támogatás", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Figyelem: A naplófájl XPUBs kódot tartalmaz. Ezt felhasználva bárki láthatja az ön fióktörténetét.", "TR_LOG": "Napló", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Küldés", "TR_FEE_LABEL": "TR. díj", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Ha elfelejti a jelszómondatát örökre elveszti a hozzáférést a fiókjához. Nincs más mód a visszaállításhoz!", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Mégsem", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Cím", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Eszköz elfelejtése", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Ön most a Trezor Beta Wallet-et nyitja meg", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Nincs még Trezor-ja? {getOne}", "TR_GET_ONE": "Itt hozzájuthat", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Fiókok hozzáadásához az eszköznek csatlakozva kell lenni.", "TR_ADD_ACCOUNT": "Számla hozzáadása", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Egyenleg", "TR_RATE": "Érték", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/id.json b/public/l10n/id.json index fd6c3e64..d65d3ffc 100644 --- a/public/l10n/id.json +++ b/public/l10n/id.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Persyaratan Layanan", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Tutup", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Bantuan", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Kirim", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Jika anda kehilangan passphrase anda, maka dompet anda akan hilang. Tidak ada cara lain untuk dapat memulihkan dana anda.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Hapus", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Alamat", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Hapus perangkat ini", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Anda membuka Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Untuk menambah akun, pastikan perangkat anda terhubung dan akun terakhir tidak kosong.", "TR_ADD_ACCOUNT": "Tambahkan akun", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Saldo", "TR_RATE": "Kurs", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/it.json b/public/l10n/it.json index 8f7dda93..5d34edd1 100644 --- a/public/l10n/it.json +++ b/public/l10n/it.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Termini", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Chiudi", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Supporto", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attenzione: il file di log contiene le tue XPUB. Con le tue XPUB, chiunque può vedere la storia del tuo account.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Invia", "TR_FEE_LABEL": "Commissioni", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Se dimentichi la tua passphrase, perderai il tuo portafoglio per sempre. Non esiste altro modo per recuperare i tuoi fondi.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Clear", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Indirizzo", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Dimentica questo dispositivo", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Stai aprendo il Portafoglio Trezor Beta", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Non hai Trezor? {getOne}", "TR_GET_ONE": "Acquistane uno", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Per aggiungere altri accounts, assicurati che il dispositivo sia connesso e che l'ultimo account non sia vuoto.", "TR_ADD_ACCOUNT": "Aggiungi account", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Saldo", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/ja.json b/public/l10n/ja.json index cf6bf3a7..b927d0bb 100644 --- a/public/l10n/ja.json +++ b/public/l10n/ja.json @@ -1,6 +1,8 @@ { "TR_TERMS": "利用規約", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "閉じる", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "サポート", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "警告: ログにはあなたのXPUBが含まれています。第三者にXPUBが渡ってしまうと、すべての取引履歴を閲覧されてしまいます。", "TR_LOG": "ログ", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Trezorで操作を確認してください", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "送信", "TR_FEE_LABEL": "手数料", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "TrezorがサポートするUniversal Clientをダウンロードしてください。", "TR_GO_TO_NEM_DOT_IO": "nem.ioへ移動", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " 注意: パスフレーズはは大文字と小文字を区別します。", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "パスフレーズを忘れてしまった場合、お持ちのウォレットのデータは永遠に失われます。資金を復元する方法はありません。", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "クリア", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "アドレス", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "端末の関連付けを解除する", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Trezor Beta Walletを開きます", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "デバイスが認識されませんか?{link}をインストールしてください。", "TR_DONT_HAVE_A_TREZOR_GET": "Trezorをお持ちではありませんか?{getOne}", "TR_GET_ONE": "入手してください", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Trezorとインターネットブラウザ間の接続を支援する新しい通信ツールです。", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "口座を追加する際には、デバイスが接続されていることを確認してください。", "TR_ADD_ACCOUNT": "口座を追加", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "残高", "TR_RATE": "レート", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/ko.json b/public/l10n/ko.json index 6a0c8eb6..3e60cbca 100644 --- a/public/l10n/ko.json +++ b/public/l10n/ko.json @@ -1,6 +1,8 @@ { "TR_TERMS": "약관", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "닫기", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "지원", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "주의: 로그에 회원님의 XPUB가 포함되어 있습니다. 회원님의 XPUB를 사용하여 누군가가 회원님의 계정 내역을 볼 수 있습니다.", "TR_LOG": "로그", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Trezor에서 작업 확인", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "보내기", "TR_FEE_LABEL": "수수료", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Trezor 지원을 위해 Universal Client를 다운로드해야 합니다.", "TR_GO_TO_NEM_DOT_IO": "nem.io로 이동", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " 참고: 패스프레이즈는 대/소문자를 구분합니다.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "패스프레이즈를 잊어버린 경우, 지갑은 영원히 손실됩니다. 자금을 복구할 수 있는 방법이 없습니다.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "occurrences: app/views/device/update/update-reconnect-bootloader.html app/views/device/update/update-reconnect-normal.html app/views/landing.html app/views/nav/settings-buttons.html", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "주소", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "장치 연결 해제", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Trezor Beta Wallet을 열고 있습니다.", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "장치가 인식되지 않습니까? {link}를 설치해 보세요.", "TR_DONT_HAVE_A_TREZOR_GET": "Trezor가 없으신가요? {getOne}.", "TR_GET_ONE": "다운로드하세요", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Trezor와 인터넷 브라우저 간 연결을 용이하기 하는 새로운 통신 도구입니다.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "계정을 추가하려면 장치가 연결되어 있는지 확인하세요.", "TR_ADD_ACCOUNT": "계정 추가", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "잔액", "TR_RATE": "요율", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/nl.json b/public/l10n/nl.json index 85ef0636..d2308f53 100644 --- a/public/l10n/nl.json +++ b/public/l10n/nl.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Termen", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Sluiten", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Ondersteuning", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Waarschuwing: Dit logboek kan uw XPUB bevatten. Wanneer je aan anderen geeft, kunnen die uw hele transactiegeschiedenis bekijken.", "TR_LOG": "Logboek", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Verzenden", "TR_FEE_LABEL": "Transactiekosten", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Als u uw wachtwoordzin vergeet, is uw portemonnee voorgoed verloren. Er is geen manier om uw rekeningen te herstellen.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Leegmaken", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adres", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Apparaat vergeten?", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "U opent uw Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Heb je geen Trezor {getOne}", "TR_GET_ONE": "Haal hier één", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Controleer of uw apparaat is aangesloten en het laatste account niet leeg is om accounts toe te voegen.", "TR_ADD_ACCOUNT": "Account toevoegen", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balans", "TR_RATE": "Tarief", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/no.json b/public/l10n/no.json index 7b3450ea..605230ea 100644 --- a/public/l10n/no.json +++ b/public/l10n/no.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Lukk", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "Logg", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Send", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Check for devices", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adresse", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Glem enhet", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Har du ikke en Trezor? {getOne}", "TR_GET_ONE": "Skaff deg en", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "To add accounts, make sure your device is connected.", "TR_ADD_ACCOUNT": "Legg til konto", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/pl.json b/public/l10n/pl.json index fd58e64c..cb49d64c 100644 --- a/public/l10n/pl.json +++ b/public/l10n/pl.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Warunki", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Zamknij", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Wsparcie", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Ostrzeżenie: Ten dziennik może zawierać Twój klucz XPUB. Gdy dasz go osobom trzecim, może on pozwolić im zobaczyć historię wszystkich transakcji.", "TR_LOG": "Dziennik", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Wyślij", "TR_FEE_LABEL": "Opłata", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Jeżeli zapomnisz swoje hasło Twój portfel będzie stracony na dobre. Nie ma możliwości odzyskania środków.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Wyczyść", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adres", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Zapomnieć o urządzeniu?", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Przechodzisz do Portfela Trezor Beta", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Nie masz Trezor? {getOne}", "TR_GET_ONE": "Zdobądź go", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Aby dodać konta, upewnij się, że Twoje urządzenie jest podłączone i ostatnie konto nie jest puste.", "TR_ADD_ACCOUNT": "Dodaj konto", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Stan", "TR_RATE": "Kurs", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/pt.json b/public/l10n/pt.json index e8ade577..771cf6c3 100644 --- a/public/l10n/pt.json +++ b/public/l10n/pt.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Termos", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Fechar", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Suporte", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Aviso: Este log pode conter sua XPUB. Se você fornecê-lo para terceiros, permitirá que vejam todo o seu histórico de transações.", "TR_LOG": "Log", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Enviar", "TR_FEE_LABEL": "Taxa", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Se você esquecer sua senha de segurança, perderá sua carteira para sempre. Não há nenhuma maneira de recuperar seus fundos.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Limpar", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Endereço", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Esquecer dispositivo?", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Você está abrindo a Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Não tem um Trezor? {getOne}", "TR_GET_ONE": "Compre um", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Para adicionar contas, certifique-se que o dispositivo esteja conectado e que a última conta não está vazia.", "TR_ADD_ACCOUNT": "Adicionar conta", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Saldo", "TR_RATE": "Cotação", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/ru.json b/public/l10n/ru.json index 6a75c044..ef0ef7cd 100644 --- a/public/l10n/ru.json +++ b/public/l10n/ru.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Условия", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Закрыть", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Поддержка", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Внимание: этот журнал содержит ваши XPUB, по которым посторонние люди смогут увидеть историю операций вашего счета.", "TR_LOG": "Журнал", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Подтвердите действие на Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Отправить", "TR_FEE_LABEL": "Комиссия", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Обязательно скачайте универсальный клиент для поддержки Trezor.", "TR_GO_TO_NEM_DOT_IO": "Перейти на nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Примечание: кодовая фраза чувствительна к регистру.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Если вы забудете кодовую фразу, то средства потеряются навсегда. Другого способа их восстановить нет.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Очистить", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Адрес", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Забыть устройство", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Вы открываете Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Устройство не опознано? Установите {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Нет Trezor?{getOne}", "TR_GET_ONE": "Купите его", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "Новый инструмент коммуникации, который облегчает взаимодействие между Trezor и веб-браузером.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Чтобы добавить счета, убедитесь, что устройство подключено.", "TR_ADD_ACCOUNT": "Добавить счет", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Баланс", "TR_RATE": "Курс", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/sv-SE.json b/public/l10n/sv-SE.json index c8828638..11b373ad 100644 --- a/public/l10n/sv-SE.json +++ b/public/l10n/sv-SE.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Villkor", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Stäng", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Support", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Uppmärksamma: Loggen innehåller dina XPUBs. Den som har dem kan se ditt kontos historik.", "TR_LOG": "Logg", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Skicka", "TR_FEE_LABEL": "Avgift", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Om du glömmer din lösenfras, är din plånbok förlorad för gott. Det finns inget sätt att återfå dina medel.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Check for devices", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adress", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Glöm enhet", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Du öppnar Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Har du ingen Trezor?{getOne}", "TR_GET_ONE": "Skaffa en", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "För att lägga till konton, se till att din enhet är ansluten.", "TR_ADD_ACCOUNT": "Lägg till konto", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balans", "TR_RATE": "Kurs", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/tr.json b/public/l10n/tr.json index 88436445..a2b26bd7 100644 --- a/public/l10n/tr.json +++ b/public/l10n/tr.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Şartlar", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Kapat", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Destek", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Dikkat: Sıralı kayıtlar XPUB'larınızı içerir. XPUB'ları elde eden kişiler, geçmiş hesap hareketlerinizi görebilir.", "TR_LOG": "Sıralı kayıt", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Gönder", "TR_FEE_LABEL": "Masraf", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Parolanızı unutmanız durumunda, cüzdanınız sizin için kaybolur. Birikimlerinizi kurtarmanın hiçbir yolu yoktur.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Check for devices", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Adres", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Cihazı unut", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Trezor Beta Cüzdanını açıyorsunuz", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Trezor sahibi değil misiniz? {getOne}", "TR_GET_ONE": "Satın al", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Hesap eklemek için cihazınızın bağlı olduğuna emin olunuz.", "TR_ADD_ACCOUNT": "Hesap ekle", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Bakiye", "TR_RATE": "Kur", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/uk.json b/public/l10n/uk.json index 70d597d0..b390327c 100644 --- a/public/l10n/uk.json +++ b/public/l10n/uk.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Terms", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Закрити", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Підтримка", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Попередження: Цей журнал може містити Ваш XPUB. Ви даєте йому до третьої сторони, ви дозволяєте його, щоб побачити всю цю операцію історії. Надаючи його третій стороні, Ви тим самим дозволяєте побачити історію Ваших транзакцій.", "TR_LOG": "Журнал", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Надіслати", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Якщо Ви забудете свою кодову фразу, Ваш гаманець втрачається назавжди. Не існує ніякого способу для його відновлення.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Очистити", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Адреса", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Забути пристрій?", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "Get one", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Щоб додати рахунки, переконайтеся, що пристрій підключено і останній рахунок не є порожнім.", "TR_ADD_ACCOUNT": "Додати рахунок", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Balance", "TR_RATE": "Rate", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/vi.json b/public/l10n/vi.json index 0e8b8aff..c581f412 100644 --- a/public/l10n/vi.json +++ b/public/l10n/vi.json @@ -1,6 +1,8 @@ { "TR_TERMS": "Điều khoản", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "Đóng", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "Hỗ trợ", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Chú ý: Các bản ghi có chứa XPUBs của bạn. Bất cứ ai có XPUBs của bạn có thể xem lịch sử tài khoản của bạn.", "TR_LOG": "Bản ghi", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "Gửi", "TR_FEE_LABEL": "Phí", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "Nếu bạn quên cụm mật khẩu của bạn, ví của bạn sẽ không sử dụng được. Không còn cách để phục hồi các khoản tiền của bạn.", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "Recherchez des appareils", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "Địa chỉ", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "Quên thiết bị", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "Bạn đang tạo Ví Trezor Beta", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Không có Trezor? {getOne}", "TR_GET_ONE": "Hãy mua một cái", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "Để thêm tài khoản, hãy chắc chắn rằng thiết bị đã được kết nối.", "TR_ADD_ACCOUNT": "Thêm tài khoản", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "Số dư", "TR_RATE": "Tỷ giá", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/zh-TW.json b/public/l10n/zh-TW.json index f2b5b282..9ab1c236 100644 --- a/public/l10n/zh-TW.json +++ b/public/l10n/zh-TW.json @@ -1,6 +1,8 @@ { "TR_TERMS": "條款", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "關閉", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "技術支持", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.", "TR_LOG": "日誌", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "Confirm action on your Trezor", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "發送", "TR_FEE_LABEL": "Fee", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "Make sure you download the Universal Client for Trezor support.", "TR_GO_TO_NEM_DOT_IO": "Go to nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": "Note: Passphrase is case-sensitive.", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "如果你忘記你的短語密碼,你的錢包將永久地遺失,並且絕對不可能恢復你的資金。", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "清除", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "地址", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "是否記住設備?", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "You are opening Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "Device not recognized? Try installing the {link}.", "TR_DONT_HAVE_A_TREZOR_GET": "Don't have a Trezor? {getOne}", "TR_GET_ONE": "立即获取", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "New communication tool to facilitate the connection between your Trezor and your internet browser.", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "如果要新增帳戶,請先確認你的裝置已連接上電腦,且最後一個帳戶裡不是空白的(有過交易紀錄)。", "TR_ADD_ACCOUNT": "新增帳戶", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "收支總和", "TR_RATE": "匯率", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/public/l10n/zh.json b/public/l10n/zh.json index ddaad3c3..9ef4e8fa 100644 --- a/public/l10n/zh.json +++ b/public/l10n/zh.json @@ -1,6 +1,8 @@ { "TR_TERMS": "条款", "TR_EXCHANGE_RATES_BY": "Exchange rates by {service}", + "TR_WE_THANK_OUR_TRANSLATORS": "We thank our translators for their {TR_CONTRIBUTION}", + "TR_CONTRIBUTION": "contribution", "TR_MENU": "Menu", "TR_MENU_CLOSE": "关闭", "TR_TREZOR": "Trezor", @@ -9,6 +11,8 @@ "TR_SUPPORT": "支持", "TR_ATTENTION_COLON_THE_LOG_CONTAINS": "注意:日志中包含您的 XPUB。任何持有您的 XPUB 的人都可以看到您的账户历史记录。", "TR_LOG": "日志", + "TR_COPY_TO_CLIPBOARD": "Copy to clipboard", + "TR_COPIED": "Copied!", "TR_CONFIRM_ACTION_ON_YOUR": "在您的 Trezor 上确认操作", "TR_CONFIRM_ADDRESS_ON_TREZOR": "Confirm address on Trezor", "TR_PLEASE_COMPARE_YOUR_ADDRESS": "Please compare your address on device with address shown bellow", @@ -18,6 +22,7 @@ "TR_SEND_LABEL": "发送", "TR_FEE_LABEL": "手续费", "TR_DEVICE_LABEL_IS_NOT_CONNECTED": "Device {deviceLabel} is not connected", + "TR_DEVICE_LABEL_IS_NOT_BACKED_UP": "Device {deviceLabel} is not backed up", "TR_DEVICE_LABEL_IS_UNAVAILABLE": "Device {deviceLabel} is unavailable", "TR_PLEASE_CONNECT_YOUR_DEVICE": "Please connect your device to continue with the verification process", "TR_PLEASE_ENABLE_PASSPHRASE": "Please enable passphrase settings to continue with the verification process.", @@ -45,6 +50,7 @@ "TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL": "确保下载通用客户单以支持 Trezor。", "TR_GO_TO_NEM_DOT_IO": "转到 nem.io", "TR_STELLAR_WALLET": "Stellar wallet", + "TR_TEZOS_WALLET": "Tezos wallet", "TR_ENTER_DEVICE_PASSPHRASE": "Enter {deviceLabel} passphrase", "TR_NOTE_COLON_PASSPHRASE": " 注:密码区分大小写。", "TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA": "如果您忘记密码,您的钱包将永久地丢失,您的资金将无法恢复。", @@ -74,7 +80,9 @@ "TR_MINIMUM_ACCOUNT_RESERVE_REQUIRED": "Minimum account reserve required", "TR_RIPPLE_ADDRESSES_REQUIRE_MINIMUM_BALANCE": "Ripple addresses require a minimum balance of {minBalance} XRP to activate and maintain the account. {TR_LEARN_MORE}", "TR_DEVICE_SETTINGS": "Device settings", + "TR_APPLICATION_SETTINGS": "Application settings", "TR_ACCOUNT_HASH": "Account #{number}", + "TR_IMPORTED_ACCOUNT_HASH": "Imported account #{number}", "TR_CLEAR": "清除", "TR_CHECK_FOR_DEVICES": "Check for devices", "TR_ADDRESS": "地址", @@ -87,6 +95,13 @@ "TR_GO_TO_STANDARD_WALLET": "Go to your standard wallet", "TR_GO_TO_HIDDEN_WALLET": "Go to your hidden wallet", "TR_FORGET_DEVICE": "忘记设备", + "TR_CLOSE": "Close", + "TR_HIDE_BALANCE": "Hide balance", + "TR_THE_ACCOUNT_BALANCE_IS_HIDDEN": "The account balance is hidden.", + "TR_IF_YOUR_DEVICE_IS_EVER_LOST": "If your device is ever lost or damaged, your funds will be lost. Backup your device first, to protect your coins against such events.", + "TR_CREATE_BACKUP_IN_3_MINUTES": "Create a backup in 3 minutes", + "TR_YOUR_TREZOR_IS_NOT_BACKED_UP": "Your Trezor is not backed up", + "TR_SHOW_ADDRESS_I_WILL_TAKE_THE_RISK": "Show address, I will take the risk", "TR_YOU_ARE_OPENING_TREZOR_BETA_WALLET": "您即将打开 Trezor Beta Wallet", "TR_TREZOR_BETA_WALLET_IS": "{TR_TREZOR_BETA_WALLET} is a public feature-testing version of the {TR_TREZOR_WALLET}, offering the newest features before they are available to the general public.", "TR_IN_CONTRAST_COMMA_TREZOR": "In contrast, {TR_TREZOR_WALLET} is feature-conservative, making sure that its functionality is maximally reliable and dependable for the general public.", @@ -105,6 +120,7 @@ "TR_DEVICE_NOT_RECOGNIZED_TRY_INSTALLING": "未识别设备?尝试安装 {link}。", "TR_DONT_HAVE_A_TREZOR_GET": "没有 Trezor?{getOne}", "TR_GET_ONE": "একটি নিন", + "TR_UNPLUG_DEVICE_LABEL": "Unplug \"{deviceLabel}\" device", "TR_NEW_COMMUNICATION_TOOL": "全新的通信工具,帮助在您的 Trezor 与网络浏览器之间建立连接。", "TR_DOWNLOAD_LATEST_BRIDGE": "Download latest Bridge {version}", "TR_LEARN_MORE_ABOUT_LATEST_VERSION": "Learn more about latest version in {TR_CHANGELOG}.", @@ -118,8 +134,8 @@ "TR_TO_ADD_A_NEW_ACCOUNT_LAST": "To add a new account, last account must have some transactions.", "TR_TO_ADD_ACCOUNTS": "要添加账户,请确保您的设备已连接。", "TR_ADD_ACCOUNT": "添加账户", + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": "You cannot add more than 10 accounts", "TR_OTHER_COINS": "Other coins", - "TR_YOU_WILL_BE_REDIRECTED": "(You will be redirected)", "TR_CHANGE_WALLET_TYPE": "Change wallet type", "TR_RENEW_SESSION": "Renew session", "TR_YOU_ARE_IN_YOUR_STANDARD_WALLET": "You are in your standard wallet.", @@ -186,6 +202,8 @@ "TR_SEARCH_FOR_THE_TOKEN": "Search for the token or add them manually by pasting token address into search input.", "TR_BALANCE": "余额", "TR_RATE": "汇率", + "TR_RESERVE": "Reserve", + "TR_FIAT_RATES_ARE_NOT_CURRENTLY": "Fiat rates are not currently available.", "TR_DEVICE_USED_IN_OTHER": "Device is used in other window", "TR_USE_YOUR_DEVICE_IN_THIS_WINDOW": "Do you want to use your device in this window?", "TR_ACQUIRE_DEVICE": "Acquire device", @@ -197,8 +215,12 @@ "TR_PLEASE_USE_OLD_WALLET": "Please use Bitcoin wallet interface to update your firmware.", "TR_YOUR_DEVICE_IS_NOT_INITIALIZED": "Your device is not initialized", "TR_PLEASE_USE_TO_START_INITIALIZATION": "Please use Bitcoin wallet interface to start initialization process", + "TR_PLEASE_USE_TO_CREATE_BACKUP": "Please use Bitcoin wallet interface to create a backup.", "TR_DEVICE_IS_INITIALIZED_IN_SEEDLESS_MODE": "Device is initialized in seedless mode and therefore not allowed to access wallet", "TR_DEVICE_IS_IN_SEEDLESS": "Device is in seedless mode", "TR_UNREADABLE_DEVICE": "Unreadable device", - "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge" + "TR_PLEASE_INSTALL_TREZOR_BRIDGE": "Please install Trezor Bridge", + "TR_LOCAL_CURRENCY": "Local currency", + "TR_HIDE_BALANCE_EXPLAINED": "Hides your account balance so you don't have to worry about anyone looking over your shoulder.", + "TR_THE_CHANGES_ARE_SAVED": "The changes are saved automatically as they are made" } \ No newline at end of file diff --git a/translations/master.json b/translations/master.json index 11b571f2..ba05d8e9 100644 --- a/translations/master.json +++ b/translations/master.json @@ -681,6 +681,15 @@ ] } }, + "TR_IMPORTED_ACCOUNT_HASH": { + "source": "Imported account #{number}", + "meta": { + "comment": "Used in auto-generated label for imported accounts", + "occurrences": [ + "src/views/common.messages.js" + ] + } + }, "TR_CLEAR": { "source": "Clear", "meta": { @@ -1093,6 +1102,14 @@ ] } }, + "TR_YOU_CANNOT_ADD_MORE_THAN_10_ACCOUNTS": { + "source": "You cannot add more than 10 accounts", + "meta": { + "occurrences": [ + "src/views/Wallet/components/LeftNavigation/components/AccountMenu/index.messages.js" + ] + } + }, "TR_OTHER_COINS": { "source": "Other coins", "meta": { From 32859fe86f144e84bf55ecda949690a1427a9565 Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 24 Apr 2019 14:35:17 +0200 Subject: [PATCH 038/125] fix source string TR_CHANGE_WALLET_TYPE_FOR --- src/components/modals/device/WalletType/index.messages.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/modals/device/WalletType/index.messages.js b/src/components/modals/device/WalletType/index.messages.js index ee808795..4a44e42e 100644 --- a/src/components/modals/device/WalletType/index.messages.js +++ b/src/components/modals/device/WalletType/index.messages.js @@ -9,7 +9,7 @@ const definedMessages: Messages = defineMessages({ }, TR_CHANGE_WALLET_TYPE_FOR: { id: 'TR_CHANGE_WALLET_TYPE_FOR', - defaultMessage: 'Select wallet type for {deviceLabel}', + defaultMessage: 'Change wallet type for {deviceLabel}', }, TR_STANDARD_WALLET: { id: 'TR_STANDARD_WALLET', From 554d092921648be471c77a800884a477a5bb988e Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 24 Apr 2019 14:40:42 +0200 Subject: [PATCH 039/125] merge msgs and build csv in translations:extract script --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c358bc0d..31fe71ee 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,8 @@ "build:stable": "rimraf build/stable && npx webpack --config webpack/production.babel.js --output-path build/stable --progress --bail", "build:beta": "rimraf build/beta && cross-env BUILD=beta npx webpack --config webpack/production.babel.js --output-path build/beta --progress --bail", "build:dev": "rimraf build.dev && cross-env BUILD=development npx webpack --config webpack/production.babel.js --output-path build/dev --progress --bail", - "translations:extract": "rimraf translations/extractedMessages && cross-env NODE_ENV=translations babel src", - "translations:upload": "yarn translations:extract && yarn ttm merge-msgs && yarn ttm build-csv && yarn ttm upload", + "translations:extract": "rimraf translations/extractedMessages && cross-env NODE_ENV=translations babel src && yarn ttm merge-msgs && yarn ttm build-csv", + "translations:upload": "yarn translations:extract && yarn ttm upload", "translations:download": "yarn ttm build-translations && sleep 1 && yarn ttm export-translations", "flow": "flow check src", "lint": "run-s lint:*", From a6002667862b7bbddb7a33d8c8f83c85d38bc6bd Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 24 Apr 2019 14:42:02 +0200 Subject: [PATCH 040/125] fixed state checking --- src/actions/LocalStorageActions.js | 33 ++- .../WalletSettings/components/Coins/index.js | 271 ++++++++++-------- 2 files changed, 178 insertions(+), 126 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index c2fb7790..1439a1b2 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -401,21 +401,9 @@ export const toggleGroupCoinsVisibility = ( checked: boolean, isExternal: boolean ): ThunkAction => (dispatch: Dispatch) => { - if (checked && isExternal) { - dispatch({ - type: WALLET.SET_HIDDEN_COINS_EXTERNAL, - hiddenCoinsExternal: [], - }); - storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify([])); - } + // supported coins - if (!checked && isExternal) { - dispatch({ - type: WALLET.SET_HIDDEN_COINS_EXTERNAL, - hiddenCoinsExternal: allCoins, - }); - storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify(allCoins)); - } + console.log('checked', checked); if (checked && !isExternal) { dispatch({ @@ -432,6 +420,23 @@ export const toggleGroupCoinsVisibility = ( }); storageUtils.set(TYPE, KEY_HIDDEN_COINS, JSON.stringify(allCoins)); } + + // external coins + if (checked && isExternal) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal: [], + }); + storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify([])); + } + + if (!checked && isExternal) { + dispatch({ + type: WALLET.SET_HIDDEN_COINS_EXTERNAL, + hiddenCoinsExternal: allCoins, + }); + storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify(allCoins)); + } }; export const getHiddenCoins = (isExternal: boolean): Array => { diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index c2215c06..0df8ee99 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -1,6 +1,6 @@ /* @flow */ import styled from 'styled-components'; -import React from 'react'; +import React, { PureComponent } from 'react'; import { FormattedMessage } from 'react-intl'; import { FONT_SIZE } from 'config/variables'; import coins from 'constants/coins'; @@ -18,6 +18,11 @@ type Props = { toggleGroupCoinsVisibility: typeof LocalStorageActions.toggleGroupCoinsVisibility, }; +type State = { + showAllCoins: boolean, + showAllCoinsExternal: boolean, +}; + const Wrapper = styled.div` display: flex; flex-direction: column; @@ -87,131 +92,173 @@ const LogoWrapper = styled.div` align-items: center; `; -const ToggleAll = styled.span` +const ToggleAll = styled.div` cursor: pointer; `; -const CoinsSettings = (props: Props) => ( - - - - - {props.networks - .filter(network => !network.isHidden) - .map(network => ( - +class CoinsSettings extends PureComponent { + constructor(props: Props) { + super(props); + this.state = { + showAllCoins: this.props.hiddenCoins.length === 0, + showAllCoinsExternal: this.props.hiddenCoinsExternal.length === 0, + }; + } + + render() { + const { props } = this; + return ( + + + + {console.log('hidden coins', props.hiddenCoins)} + {console.log('hidden coins', props.hiddenCoins)} + {console.log('hidden coins external', props.hiddenCoinsExternal)} + - ))} - - - - {coins - .sort((a, b) => a.order - b.order) - .map(network => ( - + + {props.networks + .filter(network => !network.isHidden) + .map(network => ( + + + + + + {network.name} + + + { + props.handleCoinVisibility( + network.shortcut, + visible, + false + ); + }} + checked={!props.hiddenCoins.includes(network.shortcut)} + /> + + + ))} + + + - - -); + + {coins + .sort((a, b) => a.order - b.order) + .map(network => ( + + + + + + {network.coinName} + + + { + props.handleCoinVisibility( + network.id, + visible, + true + ); + }} + checked={ + !props.hiddenCoinsExternal.includes(network.id) + } + /> + + + ))} + + + + ); + } +} export default CoinsSettings; From b3abdcbf73693a31af8c2d30e14db00402968cdf Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Wed, 24 Apr 2019 14:44:40 +0200 Subject: [PATCH 041/125] update extracted translations and downloaded locales --- public/l10n/af.json | 2 +- public/l10n/ar.json | 2 +- public/l10n/bn.json | 2 +- public/l10n/cs.json | 2 +- public/l10n/de.json | 2 +- public/l10n/el.json | 2 +- public/l10n/en.json | 2 +- public/l10n/es.json | 2 +- public/l10n/et.json | 2 +- public/l10n/fa.json | 2 +- public/l10n/fr.json | 2 +- public/l10n/he.json | 2 +- public/l10n/hi.json | 2 +- public/l10n/hu.json | 2 +- public/l10n/id.json | 2 +- public/l10n/it.json | 2 +- public/l10n/ja.json | 2 +- public/l10n/ko.json | 2 +- public/l10n/nl.json | 2 +- public/l10n/no.json | 2 +- public/l10n/pl.json | 2 +- public/l10n/pt.json | 2 +- public/l10n/ru.json | 2 +- public/l10n/sv-SE.json | 2 +- public/l10n/tr.json | 2 +- public/l10n/uk.json | 2 +- public/l10n/vi.json | 2 +- public/l10n/zh-TW.json | 2 +- public/l10n/zh.json | 2 +- translations/master.json | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/public/l10n/af.json b/public/l10n/af.json index 0da38b1d..1a906601 100644 --- a/public/l10n/af.json +++ b/public/l10n/af.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/ar.json b/public/l10n/ar.json index 0da38b1d..1a906601 100644 --- a/public/l10n/ar.json +++ b/public/l10n/ar.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/bn.json b/public/l10n/bn.json index 32680118..c7becb03 100644 --- a/public/l10n/bn.json +++ b/public/l10n/bn.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/cs.json b/public/l10n/cs.json index 2d88a5e4..922580bf 100644 --- a/public/l10n/cs.json +++ b/public/l10n/cs.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Zapamatovat zařízení", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/de.json b/public/l10n/de.json index c3f5cf0d..c3280f08 100644 --- a/public/l10n/de.json +++ b/public/l10n/de.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Gerät merken", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/el.json b/public/l10n/el.json index a4a6c766..1eba8a5d 100644 --- a/public/l10n/el.json +++ b/public/l10n/el.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/en.json b/public/l10n/en.json index 0da38b1d..1a906601 100644 --- a/public/l10n/en.json +++ b/public/l10n/en.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/es.json b/public/l10n/es.json index e14747cc..10ac3e41 100644 --- a/public/l10n/es.json +++ b/public/l10n/es.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Recordar el dispositivo", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/et.json b/public/l10n/et.json index 0c12df34..ccd0d673 100644 --- a/public/l10n/et.json +++ b/public/l10n/et.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/fa.json b/public/l10n/fa.json index 0da38b1d..1a906601 100644 --- a/public/l10n/fa.json +++ b/public/l10n/fa.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/fr.json b/public/l10n/fr.json index a3e199fb..c248198c 100644 --- a/public/l10n/fr.json +++ b/public/l10n/fr.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Se souvenir de l'appareil", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/he.json b/public/l10n/he.json index 599fe6c3..5f56f36b 100644 --- a/public/l10n/he.json +++ b/public/l10n/he.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/hi.json b/public/l10n/hi.json index 0da38b1d..1a906601 100644 --- a/public/l10n/hi.json +++ b/public/l10n/hi.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/hu.json b/public/l10n/hu.json index aafda9af..fdc401a7 100644 --- a/public/l10n/hu.json +++ b/public/l10n/hu.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/id.json b/public/l10n/id.json index d65d3ffc..d5382820 100644 --- a/public/l10n/id.json +++ b/public/l10n/id.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/it.json b/public/l10n/it.json index 5d34edd1..ec20544a 100644 --- a/public/l10n/it.json +++ b/public/l10n/it.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/ja.json b/public/l10n/ja.json index b927d0bb..b7a891a7 100644 --- a/public/l10n/ja.json +++ b/public/l10n/ja.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "デバイスを記憶する", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/ko.json b/public/l10n/ko.json index 3e60cbca..29abba3a 100644 --- a/public/l10n/ko.json +++ b/public/l10n/ko.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "장치 저장", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/nl.json b/public/l10n/nl.json index d2308f53..4bb753b6 100644 --- a/public/l10n/nl.json +++ b/public/l10n/nl.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/no.json b/public/l10n/no.json index 605230ea..e03d1388 100644 --- a/public/l10n/no.json +++ b/public/l10n/no.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/pl.json b/public/l10n/pl.json index cb49d64c..e3f98f86 100644 --- a/public/l10n/pl.json +++ b/public/l10n/pl.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/pt.json b/public/l10n/pt.json index 771cf6c3..f5b06444 100644 --- a/public/l10n/pt.json +++ b/public/l10n/pt.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/ru.json b/public/l10n/ru.json index ef0ef7cd..9eb92597 100644 --- a/public/l10n/ru.json +++ b/public/l10n/ru.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Запомнить устройство", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/sv-SE.json b/public/l10n/sv-SE.json index 11b373ad..34b0d14c 100644 --- a/public/l10n/sv-SE.json +++ b/public/l10n/sv-SE.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/tr.json b/public/l10n/tr.json index a2b26bd7..2b9e2660 100644 --- a/public/l10n/tr.json +++ b/public/l10n/tr.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/uk.json b/public/l10n/uk.json index b390327c..1995d470 100644 --- a/public/l10n/uk.json +++ b/public/l10n/uk.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/vi.json b/public/l10n/vi.json index c581f412..051b9026 100644 --- a/public/l10n/vi.json +++ b/public/l10n/vi.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/zh-TW.json b/public/l10n/zh-TW.json index 9ab1c236..d09397ca 100644 --- a/public/l10n/zh-TW.json +++ b/public/l10n/zh-TW.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "Remember device", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/public/l10n/zh.json b/public/l10n/zh.json index 9ef4e8fa..6769c833 100644 --- a/public/l10n/zh.json +++ b/public/l10n/zh.json @@ -36,7 +36,7 @@ "TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO": "Would you like Trezor Wallet to forget your {deviceCount, plural, one {device} other {devices}} or to remember {deviceCount, plural, one {it} other {them}}, so that it is still visible even while disconnected?", "TR_REMEMBER_DEVICE": "记住设备", "TR_SELECT_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", - "TR_CHANGE_WALLET_TYPE_FOR": "Select wallet type for {deviceLabel}", + "TR_CHANGE_WALLET_TYPE_FOR": "Change wallet type for {deviceLabel}", "TR_STANDARD_WALLET": "Standard wallet", "TR_HIDDEN_WALLET": "Hidden wallet", "TR_CONTINUE_TO_ACCESS_STANDARD_WALLET": "Continue to access your standard wallet.", diff --git a/translations/master.json b/translations/master.json index ba05d8e9..b9ed0cbd 100644 --- a/translations/master.json +++ b/translations/master.json @@ -310,7 +310,7 @@ } }, "TR_CHANGE_WALLET_TYPE_FOR": { - "source": "Select wallet type for {deviceLabel}", + "source": "Change wallet type for {deviceLabel}", "meta": { "occurrences": [ "src/components/modals/device/WalletType/index.messages.js" From 88394eede2a93980f7bd6b5e0edb6ea24318ba1f Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Wed, 24 Apr 2019 14:46:16 +0200 Subject: [PATCH 042/125] cleanup --- src/actions/LocalStorageActions.js | 5 ----- .../LeftNavigation/components/CoinMenu/index.js | 8 ++++---- .../Wallet/views/WalletSettings/components/Coins/index.js | 3 --- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index 1439a1b2..c44cdb33 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -379,8 +379,6 @@ export const handleCoinVisibility = ( newConfig = [...configuration, coinShortcut]; } - console.log(coinShortcut, shouldBeVisible, isExternal); - if (isExternal) { storageUtils.set(TYPE, KEY_HIDDEN_COINS_EXTERNAL, JSON.stringify(newConfig)); dispatch({ @@ -402,9 +400,6 @@ export const toggleGroupCoinsVisibility = ( isExternal: boolean ): ThunkAction => (dispatch: Dispatch) => { // supported coins - - console.log('checked', checked); - if (checked && !isExternal) { dispatch({ type: WALLET.SET_HIDDEN_COINS, diff --git a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js index 5a63ef48..c1e1ce2b 100644 --- a/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/CoinMenu/index.js @@ -56,11 +56,11 @@ class CoinMenu extends PureComponent { } getOtherCoins() { - const { hiddenCoins } = this.props.wallet; + const { hiddenCoinsExternal } = this.props.wallet; return coins .sort((a, b) => a.order - b.order) .filter(item => !item.isHidden) // hide coins globally in config - .filter(item => !hiddenCoins.includes(item.id)) + .filter(item => !hiddenCoinsExternal.includes(item.id)) .map(coin => { const row = ( { } isBottomMenuEmpty() { - const { hiddenCoins } = this.props.wallet; + const { hiddenCoinsExternal } = this.props.wallet; const numberOfVisibleNetworks = coins .filter(item => !item.isHidden) - .filter(item => !hiddenCoins.includes(item.id)); + .filter(item => !hiddenCoinsExternal.includes(item.id)); return numberOfVisibleNetworks.length <= 0; } diff --git a/src/views/Wallet/views/WalletSettings/components/Coins/index.js b/src/views/Wallet/views/WalletSettings/components/Coins/index.js index 0df8ee99..21aab25a 100644 --- a/src/views/Wallet/views/WalletSettings/components/Coins/index.js +++ b/src/views/Wallet/views/WalletSettings/components/Coins/index.js @@ -111,9 +111,6 @@ class CoinsSettings extends PureComponent { - {console.log('hidden coins', props.hiddenCoins)} - {console.log('hidden coins', props.hiddenCoins)} - {console.log('hidden coins external', props.hiddenCoinsExternal)}