@ -0,0 +1,59 @@
|
||||
{
|
||||
"extractedMessagesFilePattern": "translations/extractedMessages/**/*.json",
|
||||
"localesOutputDir": "public/l10n/",
|
||||
"outputDir": "translations/",
|
||||
"project": {
|
||||
"identifier": "trezor-wallet-test",
|
||||
"apiKeyEnv": "CROWDIN_API_KEY"
|
||||
},
|
||||
"languages": [
|
||||
"af",
|
||||
"ar",
|
||||
"bn",
|
||||
"zh-CN",
|
||||
"zh-TW",
|
||||
"cs",
|
||||
"nl",
|
||||
"en",
|
||||
"et",
|
||||
"fr",
|
||||
"de",
|
||||
"el",
|
||||
"he",
|
||||
"hi",
|
||||
"hu",
|
||||
"id",
|
||||
"it",
|
||||
"ja",
|
||||
"ko",
|
||||
"no",
|
||||
"fa",
|
||||
"pl",
|
||||
"pt-PT",
|
||||
"ru",
|
||||
"es-ES",
|
||||
"sv-SE",
|
||||
"tr",
|
||||
"uk",
|
||||
"vi"
|
||||
],
|
||||
"langToFileNameMap": {
|
||||
"en": "en",
|
||||
"bn": "bn",
|
||||
"cs": "cs",
|
||||
"de": "de",
|
||||
"el": "el",
|
||||
"es-ES": "es",
|
||||
"fr": "fr",
|
||||
"id": "id",
|
||||
"it": "it",
|
||||
"ja": "ja",
|
||||
"nl": "nl",
|
||||
"pl": "pl",
|
||||
"pt-PT": "pt",
|
||||
"ru": "ru",
|
||||
"uk": "uk",
|
||||
"zh-CN": "zh",
|
||||
"zh-TW": "zh_TW"
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Panayiotis Lipiridis
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 478 B |
After Width: | Height: | Size: 213 B |
After Width: | Height: | Size: 815 B |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 215 B |
After Width: | Height: | Size: 292 B |
After Width: | Height: | Size: 237 B |
After Width: | Height: | Size: 292 B |
After Width: | Height: | Size: 481 B |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 222 B |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 286 B |
After Width: | Height: | Size: 238 B |
After Width: | Height: | Size: 801 B |
After Width: | Height: | Size: 942 B |
@ -0,0 +1,17 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_TERMS: {
|
||||
id: 'TR_TERMS',
|
||||
defaultMessage: 'Terms',
|
||||
description: 'As in Terms and Conditions, In the bottom footer',
|
||||
},
|
||||
TR_EXCHANGE_RATES_BY: {
|
||||
id: 'TR_EXCHANGE_RATES_BY',
|
||||
defaultMessage: 'Exchange rates by {service}',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,36 @@
|
||||
/* @flow */
|
||||
import { bindActionCreators } from 'redux';
|
||||
import { connect } from 'react-redux';
|
||||
import { withRouter } from 'react-router-dom';
|
||||
|
||||
import * as WalletActions from 'actions/WalletActions';
|
||||
import type { MapStateToProps, MapDispatchToProps } from 'react-redux';
|
||||
import type { State, Dispatch } from 'flowtype';
|
||||
|
||||
import LanguagePicker from './index';
|
||||
|
||||
type StateProps = {
|
||||
language: string,
|
||||
}
|
||||
|
||||
type DispatchProps = {
|
||||
fetchLocale: typeof WalletActions.fetchLocale,
|
||||
};
|
||||
|
||||
type OwnProps = {
|
||||
|
||||
}
|
||||
|
||||
export type Props = StateProps & DispatchProps;
|
||||
|
||||
const mapStateToProps: MapStateToProps<State, OwnProps, StateProps> = (state: State): StateProps => ({
|
||||
language: state.wallet.language,
|
||||
});
|
||||
|
||||
const mapDispatchToProps: MapDispatchToProps<Dispatch, OwnProps, DispatchProps> = (dispatch: Dispatch): DispatchProps => ({
|
||||
fetchLocale: bindActionCreators(WalletActions.fetchLocale, dispatch),
|
||||
});
|
||||
|
||||
export default withRouter(
|
||||
connect(mapStateToProps, mapDispatchToProps)(LanguagePicker),
|
||||
);
|
@ -0,0 +1,110 @@
|
||||
/* eslint-disable jsx-a11y/accessible-emoji */
|
||||
/* @flow */
|
||||
import * as React from 'react';
|
||||
import styled from 'styled-components';
|
||||
import colors from 'config/colors';
|
||||
import ReactSelect from 'react-select';
|
||||
import { LANGUAGE, SCREEN_SIZE } from 'config/variables';
|
||||
|
||||
import type { Props } from './Container';
|
||||
|
||||
const SelectWrapper = styled.div`
|
||||
display: flex;
|
||||
color: ${colors.WHITE};
|
||||
align-items: center;
|
||||
width: 180px;
|
||||
|
||||
@media screen and (max-width: ${SCREEN_SIZE.MD}) {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: ${SCREEN_SIZE.XS}) {
|
||||
width: 100px;
|
||||
}
|
||||
`;
|
||||
|
||||
const SelectIcon = styled.span`
|
||||
margin-right: -24px;
|
||||
padding-left: 6px;
|
||||
display: flex;
|
||||
`;
|
||||
|
||||
const styles = {
|
||||
singleValue: base => ({
|
||||
...base,
|
||||
color: colors.WHITE,
|
||||
paddingLeft: '25px', // flag
|
||||
}),
|
||||
control: base => ({
|
||||
...base,
|
||||
height: '40px',
|
||||
border: 'none',
|
||||
background: 'transparent',
|
||||
boxShadow: 'none',
|
||||
cursor: 'pointer',
|
||||
}),
|
||||
indicatorSeparator: () => ({
|
||||
display: 'none',
|
||||
}),
|
||||
container: base => ({
|
||||
...base,
|
||||
width: '100%',
|
||||
}),
|
||||
dropdownIndicator: () => ({
|
||||
display: 'block',
|
||||
marginTop: '3px',
|
||||
}),
|
||||
menu: base => ({
|
||||
...base,
|
||||
color: colors.WHITE,
|
||||
marginTop: '6px',
|
||||
boxShadow: 'none',
|
||||
}),
|
||||
menuList: base => ({
|
||||
...base,
|
||||
padding: 0,
|
||||
boxShadow: 'none',
|
||||
background: colors.WHITE,
|
||||
borderLeft: `1px solid ${colors.DIVIDER}`,
|
||||
borderRight: `1px solid ${colors.DIVIDER}`,
|
||||
borderBottom: `1px solid ${colors.DIVIDER}`,
|
||||
}),
|
||||
option: (base, { isFocused }) => ({
|
||||
...base,
|
||||
color: colors.TEXT_SECONDARY,
|
||||
background: isFocused ? colors.LANDING : colors.WHITE,
|
||||
borderRadius: 0,
|
||||
'&:hover': {
|
||||
cursor: 'pointer',
|
||||
background: colors.LANDING,
|
||||
},
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
const buildOption = (langCode) => {
|
||||
const lang = LANGUAGE.find(l => l.code === langCode);
|
||||
return { value: lang.code, label: lang.name };
|
||||
};
|
||||
|
||||
const LanguagePicker = ({ language, fetchLocale }: Props) => (
|
||||
<SelectWrapper>
|
||||
<SelectIcon role="img" aria-label="Select language">
|
||||
<svg width="21" height="15">
|
||||
<image xlinkHref={`l10n/flags/${language}.svg`} width="21" height="15" />
|
||||
</svg>
|
||||
</SelectIcon>
|
||||
<ReactSelect
|
||||
styles={styles}
|
||||
isSearchable={false}
|
||||
isClearable={false}
|
||||
onChange={option => fetchLocale(option.value)}
|
||||
value={buildOption(language)}
|
||||
options={
|
||||
LANGUAGE.map(lang => buildOption(lang.code))
|
||||
}
|
||||
/>
|
||||
</SelectWrapper>
|
||||
);
|
||||
|
||||
export default LanguagePicker;
|
@ -0,0 +1,38 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_MENU: {
|
||||
id: 'TR_MENU',
|
||||
defaultMessage: 'Menu',
|
||||
description: 'Mobile sidebar toggler',
|
||||
},
|
||||
TR_MENU_CLOSE: {
|
||||
id: 'TR_MENU_CLOSE',
|
||||
defaultMessage: 'Close',
|
||||
description: 'Used on button for closing sidebar menu',
|
||||
},
|
||||
TR_TREZOR: {
|
||||
id: 'TR_TREZOR',
|
||||
defaultMessage: 'Trezor',
|
||||
description: 'Link in header navigation',
|
||||
},
|
||||
TR_WIKI: {
|
||||
id: 'TR_WIKI',
|
||||
defaultMessage: 'Wiki',
|
||||
description: 'Link in header navigation',
|
||||
},
|
||||
TR_BLOG: {
|
||||
id: 'TR_BLOG',
|
||||
defaultMessage: 'Blog',
|
||||
description: 'Link in header navigation',
|
||||
},
|
||||
TR_SUPPORT: {
|
||||
id: 'TR_SUPPORT',
|
||||
defaultMessage: 'Support',
|
||||
description: 'Link in header navigation',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,17 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_ATTENTION_COLON_THE_LOG_CONTAINS: {
|
||||
id: 'TR_ATTENTION_COLON_THE_LOG_CONTAINS',
|
||||
defaultMessage: 'Attention: The log contains your XPUBs. Anyone with your XPUBs can see your account history.',
|
||||
},
|
||||
TR_LOG: {
|
||||
id: 'TR_LOG',
|
||||
defaultMessage: 'Log',
|
||||
description: 'application event and error',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,8 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,33 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_SCAN_QR_CODE: {
|
||||
id: 'TR_SCAN_QR_CODE',
|
||||
defaultMessage: 'Scan QR code',
|
||||
description: 'Title for the Scan QR modal dialog',
|
||||
},
|
||||
TR_WAITING_FOR_CAMERA: {
|
||||
id: 'TR_WAITING_FOR_CAMERA',
|
||||
defaultMessage: 'Waiting for camera...',
|
||||
},
|
||||
TR_OOPS_SOMETHING_WENT_WRONG: {
|
||||
id: 'TR_OOPS_SOMETHING_WENT_WRONG',
|
||||
defaultMessage: 'Oops! Something went wrong!',
|
||||
},
|
||||
TR_CAMERA_PERMISSION_DENIED: {
|
||||
id: 'TR_CAMERA_PERMISSION_DENIED',
|
||||
defaultMessage: 'Permission to access the camera was denied.',
|
||||
},
|
||||
TR_CAMERA_NOT_RECOGNIZED: {
|
||||
id: 'TR_CAMERA_NOT_RECOGNIZED',
|
||||
defaultMessage: 'The camera was not recognized.',
|
||||
},
|
||||
TR_UNKOWN_ERROR_SEE_CONSOLE: {
|
||||
id: 'TR_UNKOWN_ERROR_SEE_CONSOLE',
|
||||
defaultMessage: 'Unknown error. See console logs for details.',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,12 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_CONFIRM_ACTION_ON_YOUR: {
|
||||
id: 'TR_CONFIRM_ACTION_ON_YOUR',
|
||||
defaultMessage: 'Confirm action on your Trezor',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,16 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_CONFIRM_ADDRESS_ON_TREZOR: {
|
||||
id: 'TR_CONFIRM_ADDRESS_ON_TREZOR',
|
||||
defaultMessage: 'Confirm address on Trezor',
|
||||
},
|
||||
TR_PLEASE_COMPARE_YOUR_ADDRESS: {
|
||||
id: 'TR_PLEASE_COMPARE_YOUR_ADDRESS',
|
||||
defaultMessage: 'Please compare your address on device with address shown bellow',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,31 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_CONFIRM_TRANSACTION_ON: {
|
||||
id: 'TR_CONFIRM_TRANSACTION_ON',
|
||||
defaultMessage: 'Confirm transaction on {deviceLabel} device',
|
||||
},
|
||||
TR_DETAILS_ARE_SHOWN_ON: {
|
||||
id: 'TR_DETAILS_ARE_SHOWN_ON',
|
||||
defaultMessage: 'Details are shown on display',
|
||||
},
|
||||
TR_TO_LABEL: {
|
||||
id: 'TR_TO_LABEL',
|
||||
defaultMessage: 'To',
|
||||
description: 'Label for recepeint\'s address',
|
||||
},
|
||||
TR_SEND_LABEL: {
|
||||
id: 'TR_SEND_LABEL',
|
||||
defaultMessage: 'Send',
|
||||
description: 'Label for amount to be send',
|
||||
},
|
||||
TR_FEE_LABEL: {
|
||||
id: 'TR_FEE_LABEL',
|
||||
defaultMessage: 'Fee',
|
||||
description: 'Label above the fee used for transaction',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,41 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_DEVICE_LABEL_IS_NOT_CONNECTED: {
|
||||
id: 'TR_DEVICE_LABEL_IS_NOT_CONNECTED',
|
||||
defaultMessage: 'Device {deviceLabel} is not connected',
|
||||
},
|
||||
TR_DEVICE_LABEL_IS_UNAVAILABLE: {
|
||||
id: 'TR_DEVICE_LABEL_IS_UNAVAILABLE',
|
||||
defaultMessage: 'Device {deviceLabel} is unavailable',
|
||||
},
|
||||
TR_PLEASE_CONNECT_YOUR_DEVICE: {
|
||||
id: 'TR_PLEASE_CONNECT_YOUR_DEVICE',
|
||||
defaultMessage: 'Please connect your device to continue with the verification process',
|
||||
},
|
||||
TR_PLEASE_ENABLE_PASSPHRASE: {
|
||||
id: 'TR_PLEASE_ENABLE_PASSPHRASE',
|
||||
defaultMessage: 'Please enable passphrase settings to continue with the verification process.',
|
||||
},
|
||||
TR_PLEASE_DISABLE_PASSPHRASE: {
|
||||
id: 'TR_PLEASE_DISABLE_PASSPHRASE',
|
||||
defaultMessage: 'Please disable passphrase settings to continue with the verification process.',
|
||||
},
|
||||
TR_SHOW_UNVERIFIED_ADDRESS: {
|
||||
id: 'TR_SHOW_UNVERIFIED_ADDRESS',
|
||||
defaultMessage: 'Show unverified address',
|
||||
},
|
||||
TR_TRY_AGAIN: {
|
||||
id: 'TR_TRY_AGAIN',
|
||||
defaultMessage: 'Try again',
|
||||
description: 'Try to verify the address again',
|
||||
},
|
||||
TR_TO_PREVENT_PHISHING_ATTACKS_COMMA: {
|
||||
id: 'TR_TO_PREVENT_PHISHING_ATTACKS_COMMA',
|
||||
defaultMessage: 'To prevent phishing attacks, you should verify the address on your Trezor first. {claim}',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,17 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_DONT_FORGET: {
|
||||
id: 'TR_DONT_FORGET',
|
||||
defaultMessage: 'Don\'t forget',
|
||||
description: 'Button in remember/forget dialog',
|
||||
},
|
||||
TR_FORGETTING_ONLY_REMOVES_THE_DEVICE_FROM: {
|
||||
id: 'TR_FORGETTING_ONLY_REMOVES_THE_DEVICE_FROM',
|
||||
defaultMessage: 'Forgetting only removes the device from the list on the left, your coins are still safe and you can access them by reconnecting your Trezor again.',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,16 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO: {
|
||||
id: 'TR_WOULD_YOU_LIKE_TREZOR_WALLET_TO',
|
||||
defaultMessage: '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: {
|
||||
id: 'TR_REMEMBER_DEVICE',
|
||||
defaultMessage: 'Remember device',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,36 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_SELECT_WALLET_TYPE_FOR: {
|
||||
id: 'TR_SELECT_WALLET_TYPE_FOR',
|
||||
defaultMessage: 'Select wallet type for {deviceLabel}',
|
||||
},
|
||||
TR_CHANGE_WALLET_TYPE_FOR: {
|
||||
id: 'TR_CHANGE_WALLET_TYPE_FOR',
|
||||
defaultMessage: 'Select wallet type for {deviceLabel}',
|
||||
},
|
||||
TR_STANDARD_WALLET: {
|
||||
id: 'TR_STANDARD_WALLET',
|
||||
defaultMessage: 'Standard wallet',
|
||||
},
|
||||
TR_HIDDEN_WALLET: {
|
||||
id: 'TR_HIDDEN_WALLET',
|
||||
defaultMessage: 'Hidden wallet',
|
||||
},
|
||||
TR_CONTINUE_TO_ACCESS_STANDARD_WALLET: {
|
||||
id: 'TR_CONTINUE_TO_ACCESS_STANDARD_WALLET',
|
||||
defaultMessage: 'Continue to access your standard wallet.',
|
||||
},
|
||||
TR_PASSPHRASE_IS_OPTIONAL_FEATURE: {
|
||||
id: 'TR_PASSPHRASE_IS_OPTIONAL_FEATURE',
|
||||
defaultMessage: 'Passphrase is an optional feature of the Trezor device that is recommended for advanced users only. It is a word or a sentence of your choice. Its main purpose is to access a hidden wallet.',
|
||||
},
|
||||
TR_ASKED_ENTER_YOUR_PASSPHRASE_TO_UNLOCK: {
|
||||
id: 'TR_ASKED_ENTER_YOUR_PASSPHRASE_TO_UNLOCK',
|
||||
defaultMessage: 'You will be asked to enter your passphrase to unlock your hidden wallet.',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,12 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_FORGET_LABEL: {
|
||||
id: 'TR_FORGET_LABEL',
|
||||
defaultMessage: 'Forget {deviceLabel}?',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,12 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_CARDANO_WALLET: {
|
||||
id: 'TR_CARDANO_WALLET',
|
||||
defaultMessage: 'Cardano wallet',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,24 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_NEM_WALLET: {
|
||||
id: 'TR_NEM_WALLET',
|
||||
defaultMessage: 'NEM wallet',
|
||||
},
|
||||
TR_WE_HAVE_PARTNERED_UP_WITH_THE_NEM: {
|
||||
id: 'TR_WE_HAVE_PARTNERED_UP_WITH_THE_NEM',
|
||||
defaultMessage: 'We have partnered up with the NEM Foundation to provide you with a full-fledged NEM Wallet.',
|
||||
},
|
||||
TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL: {
|
||||
id: 'TR_MAKE_SURE_YOU_DOWNLOAD_THE_UNIVERSAL',
|
||||
defaultMessage: 'Make sure you download the Universal Client for Trezor support.',
|
||||
},
|
||||
TR_GO_TO_NEM_DOT_IO: {
|
||||
id: 'TR_GO_TO_NEM_DOT_IO',
|
||||
defaultMessage: 'Go to nem.io',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,12 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_STELLAR_WALLET: {
|
||||
id: 'TR_STELLAR_WALLET',
|
||||
defaultMessage: 'Stellar wallet',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,16 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_YOU_WILL_BE_REDIRECTED_TO_EXTERNAL: {
|
||||
id: 'TR_YOU_WILL_BE_REDIRECTED_TO_EXTERNAL',
|
||||
defaultMessage: 'You will be redirected to external wallet',
|
||||
},
|
||||
TR_GO_TO_EXTERNAL_WALLET: {
|
||||
id: 'TR_GO_TO_EXTERNAL_WALLET',
|
||||
defaultMessage: 'Go to external wallet',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,46 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_ENTER_DEVICE_PASSPHRASE: {
|
||||
id: 'TR_ENTER_DEVICE_PASSPHRASE',
|
||||
defaultMessage: 'Enter {deviceLabel} passphrase',
|
||||
},
|
||||
TR_NOTE_COLON_PASSPHRASE: {
|
||||
id: 'TR_NOTE_COLON_PASSPHRASE',
|
||||
defaultMessage: 'Note: Passphrase is case-sensitive.',
|
||||
},
|
||||
TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA: {
|
||||
id: 'TR_IF_YOU_FORGET_YOUR_PASSPHRASE_COMMA',
|
||||
defaultMessage: 'If you forget your passphrase, your wallet is lost for good. There is no way to recover your funds.',
|
||||
},
|
||||
TR_CONFIRM_PASSPHRASE: {
|
||||
id: 'TR_CONFIRM_PASSPHRASE',
|
||||
defaultMessage: 'Confirm Passphrase',
|
||||
},
|
||||
TR_PASSPHRASES_DO_NOT_MATCH: {
|
||||
id: 'TR_PASSPHRASES_DO_NOT_MATCH',
|
||||
defaultMessage: 'Passphrases do not match!',
|
||||
},
|
||||
TR_SHOW_PASSPHRASE: {
|
||||
id: 'TR_SHOW_PASSPHRASE',
|
||||
defaultMessage: 'Show passphrase',
|
||||
description: 'This is on a passphrase button',
|
||||
},
|
||||
TR_ENTER: {
|
||||
id: 'TR_ENTER',
|
||||
defaultMessage: 'Enter',
|
||||
},
|
||||
TR_PASSPHRASE: {
|
||||
id: 'TR_PASSPHRASE',
|
||||
defaultMessage: 'Passphrase',
|
||||
description: 'Label above input',
|
||||
},
|
||||
TR_CHANGED_YOUR_MIND: {
|
||||
id: 'TR_CHANGED_YOUR_MIND',
|
||||
defaultMessage: 'Changed your mind? {TR_GO_TO_STANDARD_WALLET}',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,16 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_ENTERED_PIN_NOT_CORRECT: {
|
||||
id: 'TR_ENTERED_PIN_NOT_CORRECT',
|
||||
defaultMessage: 'Entered PIN for {deviceLabel} is not correct',
|
||||
},
|
||||
TR_RETRYING_DOT_DOT: {
|
||||
id: 'TR_RETRYING_DOT_DOT',
|
||||
defaultMessage: 'Retrying...',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|
@ -0,0 +1,24 @@
|
||||
/* @flow */
|
||||
import { defineMessages } from 'react-intl';
|
||||
import type { Messages } from 'flowtype/npm/react-intl';
|
||||
|
||||
const definedMessages: Messages = defineMessages({
|
||||
TR_THE_PIN_LAYOUT_IS_DISPLAYED_ON: {
|
||||
id: 'TR_THE_PIN_LAYOUT_IS_DISPLAYED_ON',
|
||||
defaultMessage: 'The PIN layout is displayed on your Trezor.',
|
||||
},
|
||||
TR_ENTER_DEVICE_PIN: {
|
||||
id: 'TR_ENTER_DEVICE_PIN',
|
||||
defaultMessage: 'Enter {deviceLabel} PIN',
|
||||
},
|
||||
TR_ENTER_PIN: {
|
||||
id: 'TR_ENTER_PIN',
|
||||
defaultMessage: 'Enter PIN',
|
||||
},
|
||||
TR_NOT_SURE_HOW_PIN_WORKS: {
|
||||
id: 'TR_NOT_SURE_HOW_PIN_WORKS',
|
||||
defaultMessage: 'Not sure how PIN works? {TR_LEARN_MORE}',
|
||||
},
|
||||
});
|
||||
|
||||
export default definedMessages;
|