diff --git a/.storybook/i18n-party-addon/register.js b/.storybook/i18n-party-addon/register.js
new file mode 100644
index 000000000..20175a80e
--- /dev/null
+++ b/.storybook/i18n-party-addon/register.js
@@ -0,0 +1,37 @@
+// import { useGlobals } from '@storybook/api';
+const { useGlobals } = require('@storybook/api')
+const React = require("react")
+const { addons, types } = require("@storybook/addons")
+const { Icons, IconButton } = require('@storybook/components')
+const localeList = require('../../app/_locales/index.json')
+const { useEffect } = React
+
+addons.register("i18n-party", () => {
+
+ addons.add("i18n-party", {
+ title: "rotates through every i18n locale",
+ //ð Sets the type of UI element in Storybook
+ type: types.TOOL,
+ match: () => true,
+ render: (...args) => {
+ // https://github.com/storybookjs/storybook/blob/6490a0d646dbaa293b76bbde477daca615efe789/addons/toolbars/src/components/MenuToolbar.tsx#L2
+ const [globals, updateGlobals] = useGlobals()
+ useEffect(() => {
+ if (!globals.localeParty) return
+ const interval = setInterval((...args) => {
+ const currentIndex = localeList.findIndex(({ code }) => code === globals.locale)
+ const nextIndex = (currentIndex + 1) % localeList.length
+ const nextLocale = localeList[nextIndex].code
+ updateGlobals({ locale: nextLocale })
+ }, 2000)
+ return () => clearInterval(interval)
+ })
+
+ return (
+ updateGlobals({ localeParty: !globals.localeParty })}>
+
+
+ )
+ },
+ })
+})
diff --git a/.storybook/main.js b/.storybook/main.js
index b2ff41a8e..2e708e264 100644
--- a/.storybook/main.js
+++ b/.storybook/main.js
@@ -9,6 +9,7 @@ module.exports = {
'@storybook/addon-actions',
'@storybook/addon-backgrounds',
'@storybook/addon-toolbars',
+ './i18n-party-addon/register.js',
],
webpackFinal: async (config) => {
config.module.strictExportPresence = true
diff --git a/.storybook/preview.js b/.storybook/preview.js
index 8c6c910cf..112c8f16e 100644
--- a/.storybook/preview.js
+++ b/.storybook/preview.js
@@ -1,22 +1,24 @@
-import React from 'react'
-import { addDecorator, addParameters } from '@storybook/react'
-import { withKnobs } from '@storybook/addon-knobs'
-import { Provider } from 'react-redux'
-import configureStore from '../ui/app/store/store'
-import '../ui/app/css/index.scss'
-import localeList from '../app/_locales/index.json'
-import * as allLocales from './locales'
-import { I18nProvider, LegacyI18nProvider } from './i18n'
+import React, { useEffect } from 'react';
+import { addDecorator, addParameters } from '@storybook/react';
+import { useGlobals } from '@storybook/api';
+import { withKnobs } from '@storybook/addon-knobs';
+import { Provider } from 'react-redux';
+import configureStore from '../ui/app/store/store';
+import '../ui/app/css/index.scss';
+import localeList from '../app/_locales/index.json';
+import * as allLocales from './locales';
+import { I18nProvider, LegacyI18nProvider } from './i18n';
+import testData from './test-data.js'
addParameters({
backgrounds: {
default: 'light',
values: [
- { name: 'light', value: '#FFFFFF'},
+ { name: 'light', value: '#FFFFFF' },
{ name: 'dark', value: '#333333' },
],
- }
-})
+ },
+});
export const globalTypes = {
locale: {
@@ -26,8 +28,8 @@ export const globalTypes = {
toolbar: {
icon: 'globe',
items: localeList.map(({ code, name }) => {
- return { value: code, right: code, title: name }
- })
+ return { value: code, right: code, title: name };
+ }),
},
},
};
@@ -37,15 +39,13 @@ const styles = {
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
-}
+};
-const store = configureStore({
- metamask: { metamask: { } },
-})
+const store = configureStore(testData)
const metamaskDecorator = (story, context) => {
- const currentLocale = context.globals.locale
- const current = allLocales[currentLocale]
+ const currentLocale = context.globals.locale;
+ const current = allLocales[currentLocale];
return (
{
en={allLocales.en}
>
-
- { story() }
-
+ {story()}
- )
-}
+ );
+};
-addDecorator(withKnobs)
-addDecorator(metamaskDecorator)
+addDecorator(withKnobs);
+addDecorator(metamaskDecorator);
diff --git a/.storybook/test-data.js b/.storybook/test-data.js
new file mode 100644
index 000000000..99295cab0
--- /dev/null
+++ b/.storybook/test-data.js
@@ -0,0 +1,218 @@
+import { TRANSACTION_STATUSES } from '../shared/constants/transaction';
+
+const state = {
+ metamask: {
+ isInitialized: true,
+ isUnlocked: true,
+ featureFlags: { sendHexData: true },
+ rpcUrl: 'https://rawtestrpc.metamask.io/',
+ identities: {
+ '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825': {
+ address: '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825',
+ name: 'Send Account 1',
+ },
+ '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb': {
+ address: '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb',
+ name: 'Send Account 2',
+ },
+ '0x2f8d4a878cfa04a6e60d46362f5644deab66572d': {
+ address: '0x2f8d4a878cfa04a6e60d46362f5644deab66572d',
+ name: 'Send Account 3',
+ },
+ '0xd85a4b6a394794842887b8284293d69163007bbb': {
+ address: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ name: 'Send Account 4',
+ },
+ },
+ cachedBalances: {},
+ currentBlockGasLimit: '0x4c1878',
+ currentCurrency: 'USD',
+ conversionRate: 1200.88200327,
+ conversionDate: 1489013762,
+ nativeCurrency: 'ETH',
+ frequentRpcList: [],
+ network: '3',
+ provider: {
+ type: 'ropsten',
+ chainId: '0x3',
+ },
+ accounts: {
+ '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825': {
+ code: '0x',
+ balance: '0x47c9d71831c76efe',
+ nonce: '0x1b',
+ address: '0xfdea65c8e26263f6d9a1b5de9555d2931a33b825',
+ },
+ '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb': {
+ code: '0x',
+ balance: '0x37452b1315889f80',
+ nonce: '0xa',
+ address: '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb',
+ },
+ '0x2f8d4a878cfa04a6e60d46362f5644deab66572d': {
+ code: '0x',
+ balance: '0x30c9d71831c76efe',
+ nonce: '0x1c',
+ address: '0x2f8d4a878cfa04a6e60d46362f5644deab66572d',
+ },
+ '0xd85a4b6a394794842887b8284293d69163007bbb': {
+ code: '0x',
+ balance: '0x0',
+ nonce: '0x0',
+ address: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ },
+ },
+ addressBook: {
+ '0x3': {
+ '0x06195827297c7a80a443b6894d3bdb8824b43896': {
+ address: '0x06195827297c7a80a443b6894d3bdb8824b43896',
+ name: 'Address Book Account 1',
+ chainId: '0x3',
+ },
+ },
+ },
+ tokens: [
+ {
+ address: '0x1a195821297c7a80a433b6894d3bdb8824b43896',
+ decimals: 18,
+ symbol: 'ABC',
+ },
+ {
+ address: '0x8d6b81208414189a58339873ab429b6c47ab92d3',
+ decimals: 4,
+ symbol: 'DEF',
+ },
+ {
+ address: '0xa42084c8d1d9a2198631988579bb36b48433a72b',
+ decimals: 18,
+ symbol: 'GHI',
+ },
+ ],
+ transactions: {},
+ currentNetworkTxList: [
+ {
+ id: 'mockTokenTx1',
+ txParams: {
+ to: '0x8d6b81208414189a58339873ab429b6c47ab92d3',
+ from: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ },
+ time: 1700000000000,
+ },
+ {
+ id: 'mockTokenTx2',
+ txParams: {
+ to: '0xafaketokenaddress',
+ from: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ },
+ time: 1600000000000,
+ },
+ {
+ id: 'mockTokenTx3',
+ txParams: {
+ to: '0x8d6b81208414189a58339873ab429b6c47ab92d3',
+ from: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ },
+ time: 1500000000000,
+ },
+ {
+ id: 'mockEthTx1',
+ txParams: {
+ to: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ from: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ },
+ time: 1400000000000,
+ },
+ ],
+ unapprovedMsgs: {
+ '0xabc': { id: 'unapprovedMessage1', time: 1650000000000 },
+ '0xdef': { id: 'unapprovedMessage2', time: 1550000000000 },
+ '0xghi': { id: 'unapprovedMessage3', time: 1450000000000 },
+ },
+ unapprovedMsgCount: 0,
+ unapprovedPersonalMsgs: {},
+ unapprovedPersonalMsgCount: 0,
+ unapprovedDecryptMsgs: {},
+ unapprovedDecryptMsgCount: 0,
+ unapprovedEncryptionPublicKeyMsgs: {},
+ unapprovedEncryptionPublicKeyMsgCount: 0,
+ keyringTypes: ['Simple Key Pair', 'HD Key Tree'],
+ keyrings: [
+ {
+ type: 'HD Key Tree',
+ accounts: [
+ 'fdea65c8e26263f6d9a1b5de9555d2931a33b825',
+ 'c5b8dbac4c1d3f152cdeb400e2313f309c410acb',
+ '2f8d4a878cfa04a6e60d46362f5644deab66572d',
+ ],
+ },
+ {
+ type: 'Simple Key Pair',
+ accounts: ['0xd85a4b6a394794842887b8284293d69163007bbb'],
+ },
+ ],
+ selectedAddress: '0xd85a4b6a394794842887b8284293d69163007bbb',
+ send: {
+ gasLimit: '0xFFFF',
+ gasPrice: '0xaa',
+ gasTotal: '0xb451dc41b578',
+ tokenBalance: 3434,
+ from: '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb',
+ to: '0x987fedabc',
+ amount: '0x080',
+ memo: '',
+ errors: {
+ someError: null,
+ },
+ maxModeOn: false,
+ editingTransactionId: 97531,
+ },
+ unapprovedTxs: {
+ 4768706228115573: {
+ id: 4768706228115573,
+ time: 1487363153561,
+ status: TRANSACTION_STATUSES.UNAPPROVED,
+ gasMultiplier: 1,
+ metamaskNetworkId: '3',
+ txParams: {
+ from: '0xc5b8dbac4c1d3f152cdeb400e2313f309c410acb',
+ to: '0x18a3462427bcc9133bb46e88bcbe39cd7ef0e761',
+ value: '0xde0b6b3a7640000',
+ metamaskId: 4768706228115573,
+ metamaskNetworkId: '3',
+ gas: '0x5209',
+ },
+ txFee: '17e0186e60800',
+ txValue: 'de0b6b3a7640000',
+ maxCost: 'de234b52e4a0800',
+ gasPrice: '4a817c800',
+ },
+ },
+ currentLocale: 'en',
+ },
+ appState: {
+ menuOpen: false,
+ currentView: {
+ name: 'accountDetail',
+ detailView: null,
+ context: '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc',
+ },
+ accountDetail: {
+ subview: 'transactions',
+ },
+ modal: {
+ modalState: {},
+ previousModalState: {},
+ },
+ isLoading: false,
+ warning: null,
+ scrollToBottom: false,
+ forgottenPassword: null,
+ },
+ send: {
+ fromDropdownOpen: false,
+ toDropdownOpen: false,
+ errors: { someError: null },
+ },
+};
+
+export default state;
diff --git a/app/_locales/ja/messages.json b/app/_locales/ja/messages.json
index a8cfd9bbe..86b131c4b 100644
--- a/app/_locales/ja/messages.json
+++ b/app/_locales/ja/messages.json
@@ -1,9 +1,20 @@
{
+ "about": {
+ "message": "ããŒãžã§ã³æ
å ±"
+ },
"aboutSettingsDescription": {
- "message": "ããŒãžã§ã³ããµããŒããååãå
ãªã©"
+ "message": "ããŒãžã§ã³ããµããŒãã»ã³ã¿ãŒãåãåããæ
å ±"
},
"acceleratingATransaction": {
- "message": "*ããé«ãã¬ã¹äŸ¡æ Œã䜿çšãããšããããã¯ãŒã¯ã§ããéãåŠçããããã©ã³ã¶ã¯ã·ã§ã³ãé«éåã§ããå¯èœæ§ãé«ããªããŸãããåžžã«ä¿èšŒããããšã¯éããŸããã"
+ "message": "* ããé«ãGasæéãæ¯æããšããã©ã³ã¶ã¯ã·ã§ã³ã¯ããæ©ããããã¯ãŒã¯ã§åŠçãããå¯èœæ§ãé«ããªããŸãããã ããããã¯åžžã«ä¿èšŒããããšã¯éããŸããã"
+ },
+ "acceptTermsOfUse": {
+ "message": "$1 ã®å
容ã確èªããåæããŸã",
+ "description": "$1 is the `terms` message"
+ },
+ "accessAndSpendNotice": {
+ "message": "$1 ã¯ã¢ã¯ã»ã¹ããŠãã®æ倧éãŸã§äœ¿çšããå¯èœæ§ããããŸã",
+ "description": "$1 is the url of the site requesting ability to spend"
},
"accessingYourCamera": {
"message": "ã«ã¡ã©ã«ã¢ã¯ã»ã¹ããŠããŸã..."
@@ -12,7 +23,7 @@
"message": "ã¢ã«ãŠã³ã"
},
"accountDetails": {
- "message": "ã¢ã«ãŠã³ã詳现"
+ "message": "ã¢ã«ãŠã³ãã®è©³çŽ°"
},
"accountName": {
"message": "ã¢ã«ãŠã³ãå"
@@ -21,28 +32,37 @@
"message": "ã¢ã«ãŠã³ãèšå®"
},
"accountSelectionRequired": {
- "message": "ã¢ã«ãŠã³ããéžæããŠãã ããã"
+ "message": "ã¢ã«ãŠã³ããéžæããå¿
èŠããããŸã!"
+ },
+ "active": {
+ "message": "ã¢ã¯ãã£ã"
+ },
+ "activity": {
+ "message": "ã¢ã¯ãã£ããã£"
},
"activityLog": {
- "message": "ã¢ã¯ãã£ããã£ãã°"
+ "message": "ã¢ã¯ãã£ããã£ã®ãã°"
+ },
+ "addAccount": {
+ "message": "ã¢ã«ãŠã³ãã®è¿œå "
},
"addAcquiredTokens": {
- "message": "MetaMaskã§ç²åŸããããŒã¯ã³ãè¿œå ãã"
+ "message": "MetaMaskã§ååŸããããŒã¯ã³ãè¿œå ãã"
},
"addAlias": {
- "message": "ãšã€ãªã¢ã¹ãè¿œå "
+ "message": "ãšã€ãªã¢ã¹ã®è¿œå "
},
"addNetwork": {
- "message": "ãããã¯ãŒã¯è¿œå "
+ "message": "ãããã¯ãŒã¯ã®è¿œå "
},
"addRecipient": {
- "message": "åå人远å "
+ "message": "åå人ãè¿œå "
},
"addSuggestedTokens": {
- "message": "æšå¥šããŒã¯ã³ãè¿œå "
+ "message": "æšå¥šãããããŒã¯ã³ãè¿œå "
},
"addToAddressBook": {
- "message": "ã¢ãã¬ã¹åž³ã«è¿œå "
+ "message": "ã¢ãã¬ã¹åž³ãžè¿œå "
},
"addToAddressBookModalPlaceholder": {
"message": "äŸ: John D"
@@ -62,19 +82,77 @@
"advancedSettingsDescription": {
"message": "éçºè
åãæ©èœã§ã¯ãç¶æ
ãã°ã®ããŠã³ããŒããã¢ã«ãŠã³ããªã»ãããããã¹ãããããã«ã¹ã¿ã RPCã®èšå®ãå¯èœã§ãã"
},
+ "affirmAgree": {
+ "message": "åæããŸã"
+ },
+ "aggregatorFeeCost": {
+ "message": "ã¢ã°ãªã²ãŒã¿ã®ãããã¯ãŒã¯ææ°æ"
+ },
+ "alertDisableTooltip": {
+ "message": "\"èšå® > èŠåã®èšå®\"ã§å€æŽã§ããŸã"
+ },
+ "alertSettingsUnconnectedAccount": {
+ "message": "æªæ¥ç¶ã®ã¢ã«ãŠã³ããéžæããŠWebãµã€ãé²èŠ§ããæã«èŠåãã"
+ },
+ "alertSettingsUnconnectedAccountDescription": {
+ "message": "ãã®èŠåã¯ãéžæäžã®ã¢ã«ãŠã³ããæªæ¥ç¶ã®ãŸãŸWeb3ãµã€ããé²èŠ§ããŠãããšãã«ãããã¢ãã衚瀺ãããŸãã"
+ },
+ "alertSettingsWeb3ShimUsage": {
+ "message": "å»æ¢ãããwindow.web3 APIã®äœ¿çšãèŠåãã"
+ },
+ "alertSettingsWeb3ShimUsageDescription": {
+ "message": "ãã®èŠåã¯ãéžæäžã®ã¢ã«ãŠã³ããå»æ¢ãããwindow.web3 APIã䜿çšããŠãµã€ããé²èŠ§ãããšãã«ãããã¢ãã衚瀺ãããŸãããµã€ãã¯æããæ©èœããŸããã"
+ },
+ "alerts": {
+ "message": "èŠåã®èšå®"
+ },
+ "alertsSettingsDescription": {
+ "message": "èŠåãæå¹åãŸãã¯ç¡å¹å"
+ },
+ "allowExternalExtensionTo": {
+ "message": "å€éšæ¡åŒµæ©èœã«æ¬¡ã®æäœãèš±å¯ããŸã:"
+ },
+ "allowOriginSpendToken": {
+ "message": "$1 ã« $2 ã®äœ¿çšãèš±å¯ããŸãã?",
+ "description": "$1 is the url of the site and $2 is the symbol of the token they are requesting to spend"
+ },
+ "allowThisSiteTo": {
+ "message": "ãã®ãµã€ãã«æ¬¡ã®æäœãèš±å¯ããŸã:"
+ },
+ "allowWithdrawAndSpend": {
+ "message": "$1 ã«ä»¥äžã®é¡ãŸã§ã®åŒãåºããšäœ¿çšãèš±å¯ããŸãã",
+ "description": "The url of the site that requested permission to 'withdraw and spend'"
+ },
"amount": {
"message": "éé¡"
},
+ "amountInEth": {
+ "message": "$1 ETH",
+ "description": "Displays an eth amount to the user. $1 is a decimal number"
+ },
+ "amountWithColon": {
+ "message": "éé¡:"
+ },
"appDescription": {
- "message": "Ethereumã®ãã©ãŠã¶ã»ãšã¯ã¹ãã³ã·ã§ã³",
+ "message": "EthereumãŠã©ã¬ããã®ãã©ãŠã¶ã»ãšã¯ã¹ãã³ã·ã§ã³",
"description": "The description of the application"
},
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
+ "approvalAndAggregatorTxFeeCost": {
+ "message": "æ¿èªãšã¢ã°ãªã²ãŒã¿ã®ãããã¯ãŒã¯ææ°æ"
+ },
+ "approvalTxGasCost": {
+ "message": "æ¿èªã®ãã©ã³ã¶ã¯ã·ã§ã³Gasæé"
+ },
"approve": {
- "message": "æ¿èªãã"
+ "message": "䜿çšé床é¡ã®æ¿èª"
+ },
+ "approveSpendLimit": {
+ "message": "䜿çšéåºŠé¡ $1 ãæ¿èª",
+ "description": "The token symbol that is being approved"
},
"approved": {
"message": "æ¿èªæžã¿"
@@ -82,23 +160,29 @@
"asset": {
"message": "ã¢ã»ãã"
},
+ "assets": {
+ "message": "ã¢ã»ãã"
+ },
"attemptToCancel": {
- "message": "ãã£ã³ã»ã«ãè©Šã¿ãŸããïŒ"
+ "message": "ãã£ã³ã»ã«ãèŠæ±ããŸãã?"
},
"attemptToCancelDescription": {
- "message": "ãã®ãã£ã³ã»ã«ãéä¿¡ããŠããå
ã®ãã©ã³ã¶ã¯ã·ã§ã³ããã£ã³ã»ã«ãããããšã¯ä¿èšŒãããŸããããã£ã³ã»ã«ãæåããå Žåãäžèšã®ååŒææ°æãè«æ±ãããŸãã"
+ "message": "ãã£ã³ã»ã«ãèŠæ±ããŠããååŒã®ãã£ã³ã»ã«ã¯ä¿èšŒãããŸããããã£ã³ã»ã«ãæåããå Žåãäžèšã®ååŒææ°æãè«æ±ãããŸãã"
},
"attemptingConnect": {
"message": "ãããã¯ãã§ãŒã³ã«æ¥ç¶äž"
},
"attributions": {
- "message": "å±æ§"
+ "message": "ãœãããŠã§ã¢ã®èäœæš©åç¥"
+ },
+ "authorizedPermissions": {
+ "message": "以äžã®æš©éãèš±å¯ããŸãã"
},
"autoLockTimeLimit": {
- "message": "èªåãã°ã¢ãŠã(å)"
+ "message": "èªåããã¯(å)"
},
"autoLockTimeLimitDescription": {
- "message": "MetaMaskãèªåçã«ãã°ã¢ãŠããããŸã§ã®ã¢ã€ãã«æéãååäœã§èšå®ããŸãã"
+ "message": "MetaMaskãèªåçã«ããã¯ãããŸã§ã®ã¢ã€ãã«æéãååäœã§èšå®ããŸãã"
},
"average": {
"message": "å¹³å"
@@ -106,59 +190,292 @@
"back": {
"message": "æ»ã"
},
+ "backToAll": {
+ "message": "äžèŠ§ã«æ»ã"
+ },
+ "backupApprovalInfo": {
+ "message": "ã·ãŒããã¬ãŒãºã¯ãŠã©ã¬ããã®åŸ©æ§ã«å¿
èŠã§ããããã€ã¹ããã¹ã¯ãŒãã®çŽå€±ãMetaMaskã®åã€ã³ã¹ããŒã«æããŸãã¯å¥ã®ããã€ã¹ã§ãŠã©ã¬ããã䜿çšããæã«å¿
èŠã§ãã"
+ },
+ "backupApprovalNotice": {
+ "message": "ã·ãŒããã¬ãŒãºãããã¯ã¢ããããŠããŠã©ã¬ãããšè³éã®å®å
šã確ä¿ããŠãã ããã"
+ },
+ "backupNow": {
+ "message": "ä»ããããã¯ã¢ãã"
+ },
"balance": {
- "message": "æ®é«:"
+ "message": "æ®é«"
+ },
+ "balanceOutdated": {
+ "message": "æ®é«æ
å ±ã¯ææ°ã§ã¯ãªãå¯èœæ§ããããŸã"
+ },
+ "basic": {
+ "message": "åºæ¬"
+ },
+ "blockExplorerUrl": {
+ "message": "ãããã¯ãšã¯ã¹ãããŒã©"
+ },
+ "blockExplorerView": {
+ "message": "$1 ã®ã¢ã«ãŠã³ãã衚瀺",
+ "description": "$1 replaced by URL for custom block explorer"
},
"blockiesIdenticon": {
- "message": "Blockies Identicon ã䜿çš"
+ "message": "Blockies Identiconã䜿çš"
+ },
+ "browserNotSupported": {
+ "message": "ãã®ãã©ãŠã¶ãŒã¯ãµããŒãããŠããŸããã"
+ },
+ "builtInCalifornia": {
+ "message": "MetaMaskã¯ã«ãªãã©ã«ãã¢ã§èšèšãäœæãããŸããã"
+ },
+ "buy": {
+ "message": "å
¥é"
+ },
+ "buyWithWyre": {
+ "message": "Wyreã§ETHã賌å
¥"
+ },
+ "buyWithWyreDescription": {
+ "message": "Wyreã§ã¯ãããããã«ãŒãã䜿çšããŠETHãMetaMaskã¢ã«ãŠã³ãã«çŽæ¥å
¥éã§ããŸãã"
+ },
+ "bytes": {
+ "message": "ãã€ã"
+ },
+ "canToggleInSettings": {
+ "message": "éç¥ã¯èšå®->èŠåã®èšå®ã§å床æå¹ã«ã§ããŸãã"
},
"cancel": {
"message": "ãã£ã³ã»ã«"
},
+ "cancellationGasFee": {
+ "message": "ãã£ã³ã»ã«ã®Gasæé"
+ },
+ "cancelled": {
+ "message": "ãã£ã³ã»ã«æžã¿"
+ },
+ "chainId": {
+ "message": "ãã§ãŒã³ID"
+ },
+ "chromeRequiredForHardwareWallets": {
+ "message": "ããŒããŠã§ã¢ãŠã©ã¬ãããžæ¥ç¶ããã«ã¯ãMetaMask on Google Chrome ã䜿çšããå¿
èŠããããŸãã"
+ },
+ "clickToRevealSeed": {
+ "message": "ã·ãŒããã¬ãŒãºã衚瀺ããã«ã¯ãããã¯ãªãã¯ããŸã"
+ },
+ "close": {
+ "message": "éãã"
+ },
"confirm": {
"message": "確èª"
},
"confirmPassword": {
"message": "ãã¹ã¯ãŒãã®ç¢ºèª"
},
+ "confirmSecretBackupPhrase": {
+ "message": "ã·ãŒããã¬ãŒãºã®ç¢ºèª"
+ },
+ "confirmed": {
+ "message": "確èªããŸãã"
+ },
+ "congratulations": {
+ "message": "ããã§ãšãããããŸã"
+ },
+ "connect": {
+ "message": "æ¥ç¶"
+ },
+ "connectAccountOrCreate": {
+ "message": "ã¢ã«ãŠã³ããæ¥ç¶ãããããŸãã¯æ°èŠã«äœæããŸã"
+ },
+ "connectHardwareWallet": {
+ "message": "ããŒããŠã§ã¢ãŠã©ã¬ããã®æ¥ç¶"
+ },
+ "connectManually": {
+ "message": "æåã§çŸåšã®ãµã€ãã«æ¥ç¶ããŸã"
+ },
+ "connectTo": {
+ "message": "æ¥ç¶å
$1",
+ "description": "$1 is the name/origin of a web3 site/application that the user can connect to metamask"
+ },
+ "connectToAll": {
+ "message": "å
šãŠã® $1 ã«æ¥ç¶",
+ "description": "$1 will be replaced by the translation of connectToAllAccounts"
+ },
+ "connectToAllAccounts": {
+ "message": "ã¢ã«ãŠã³ã",
+ "description": "will replace $1 in connectToAll, completing the sentence 'connect to all of your accounts', will be text that shows list of accounts on hover"
+ },
+ "connectToMultiple": {
+ "message": "$1 ã«æ¥ç¶",
+ "description": "$1 will be replaced by the translation of connectToMultipleNumberOfAccounts"
+ },
+ "connectToMultipleNumberOfAccounts": {
+ "message": "$1åã®ã¢ã«ãŠã³ã",
+ "description": "$1 is the number of accounts to which the web3 site/application is asking to connect; this will substitute $1 in connectToMultiple"
+ },
+ "connectWithMetaMask": {
+ "message": "MetaMaskããµã€ãã«æ¥ç¶ãã"
+ },
+ "connectedAccountsDescriptionPlural": {
+ "message": "ãã®ãµã€ãã«æ¥ç¶ãããã¢ã«ãŠã³ã㯠$1åãããŸãã",
+ "description": "$1 is the number of accounts"
+ },
+ "connectedAccountsDescriptionSingular": {
+ "message": "ãã®ãµã€ãã«æ¥ç¶ãããã¢ã«ãŠã³ã㯠$1åãããŸãã"
+ },
+ "connectedAccountsEmptyDescription": {
+ "message": "MetaMaskã¯ãã®ãµã€ãã«æ¥ç¶ãããŠããŸãããWeb3ãµã€ãã«æ¥ç¶ããã«ã¯ããµã€ãå
ã«ããæ¥ç¶ãã¿ã³ã䜿çšããŸãã"
+ },
+ "connectedSites": {
+ "message": "æ¥ç¶æžã¿ã®ãµã€ã"
+ },
+ "connectedSitesDescription": {
+ "message": "$1 ã¯ãµã€ãã«æ¥ç¶ãããŠããŸãããµã€ãã¯ã¢ã«ãŠã³ãã¢ãã¬ã¹ãèŠãããšãã§ããŸãã",
+ "description": "$1 is the account name"
+ },
+ "connectedSitesEmptyDescription": {
+ "message": "$1 ã¯ã©ã®ãµã€ããšãæ¥ç¶ãããŠããŸããã",
+ "description": "$1 is the account name"
+ },
+ "connecting": {
+ "message": "æ¥ç¶ããŠããŸã..."
+ },
+ "connectingTo": {
+ "message": "$1 ãžã®æ¥ç¶"
+ },
+ "connectingToGoerli": {
+ "message": "Goerliãã¹ããããã¯ãŒã¯ãžã®æ¥ç¶"
+ },
+ "connectingToKovan": {
+ "message": "Kovanãã¹ããããã¯ãŒã¯ãžã®æ¥ç¶"
+ },
+ "connectingToMainnet": {
+ "message": "Ethereumã¡ã€ã³ããããžã®æ¥ç¶"
+ },
+ "connectingToRinkeby": {
+ "message": "Rinkebyãã¹ããããã¯ãŒã¯ãžã®æ¥ç¶"
+ },
+ "connectingToRopsten": {
+ "message": "Ropstenãã¹ããããã¯ãŒã¯ãžæ¥ç¶"
+ },
+ "contactUs": {
+ "message": "åãåãã"
+ },
+ "contacts": {
+ "message": "ã¢ãã¬ã¹åž³"
+ },
+ "contactsSettingsDescription": {
+ "message": "ã¢ãã¬ã¹åž³ã®è¿œå ãç·šéãåé€ã管ç"
+ },
+ "continueToWyre": {
+ "message": "Wyreãžé²ã"
+ },
"contractDeployment": {
"message": "ã³ã³ãã©ã¯ãã®ãããã€"
},
"contractInteraction": {
- "message": "ã³ã³ãã©ã¯ããžã®ã¢ã¯ã»ã¹"
+ "message": "ã³ã³ãã©ã¯ãã®ã€ã³ã¿ã©ã¯ã·ã§ã³"
},
"copiedExclamation": {
"message": "ã³ããŒå®äº!"
},
+ "copiedTransactionId": {
+ "message": "ã³ããŒãããã©ã³ã¶ã¯ã·ã§ã³ID"
+ },
+ "copyAddress": {
+ "message": "ã¢ãã¬ã¹ãã¯ãªããããŒãã«ã³ããŒããŸãã"
+ },
"copyPrivateKey": {
"message": "ããã¯ããªãã®ç§å¯éµã§ã(ã¯ãªãã¯ã§ã³ããŒ)"
},
"copyToClipboard": {
"message": "ã¯ãªããããŒããžã³ããŒ"
},
+ "copyTransactionId": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³IDãã³ããŒ"
+ },
"create": {
"message": "äœæ"
},
+ "createAWallet": {
+ "message": "ãŠã©ã¬ããã®äœæ"
+ },
"createAccount": {
"message": "ã¢ã«ãŠã³ãäœæ"
},
+ "createPassword": {
+ "message": "ãã¹ã¯ãŒãã®äœæ"
+ },
+ "currencyConversion": {
+ "message": "é貚æç®"
+ },
+ "currentAccountNotConnected": {
+ "message": "çŸåšã®ã¢ã«ãŠã³ãã¯æ¥ç¶ãããŠããŸãã"
+ },
+ "currentExtension": {
+ "message": "çŸåšã®ãšã¯ã¹ãã³ã·ã§ã³ããŒãž"
+ },
+ "currentLanguage": {
+ "message": "çŸåšã®èšèª"
+ },
"customGas": {
- "message": "ã¬ã¹ã®ã«ã¹ã¿ãã€ãº"
+ "message": "Gasã®ã«ã¹ã¿ãã€ãº"
+ },
+ "customGasSubTitle": {
+ "message": "ææ°æãå¢ãããšåŠçãŸã§ã®æéãççž®ã§ããŸããïŒççž®ã§ããªãå ŽåããããŸããïŒ"
},
"customRPC": {
"message": "ã«ã¹ã¿ã RPC"
},
+ "customSpendLimit": {
+ "message": "ã«ã¹ã¿ã 䜿çšé床é¡"
+ },
"customToken": {
"message": "ã«ã¹ã¿ã ããŒã¯ã³"
},
+ "dataBackupFoundInfo": {
+ "message": "äžéšã®ã¢ã«ãŠã³ãããŒã¿ã¯MetaMaskã®ååã®ã€ã³ã¹ããŒã«æã«ããã¯ã¢ãããããŸãããããã«ã¯ãèšå®ãã¢ãã¬ã¹åž³ãããŒã¯ã³ãå«ãŸããŸããããŒã¿ãä»ãã埩å
ããŸãã?"
+ },
"decimal": {
"message": "å°æ°ç¹æ¡æ°"
},
+ "decimalsMustZerotoTen": {
+ "message": "å°æ°æ¡æ°ã¯ã0 ä»¥äž 36 以äžã®ç¯å²ã«ããå¿
èŠããããŸãã"
+ },
+ "decrypt": {
+ "message": "埩å·"
+ },
+ "decryptCopy": {
+ "message": "æå·åããã¡ãã»ãŒãžãã³ããŒ"
+ },
+ "decryptInlineError": {
+ "message": "ãšã©ãŒã§ããã¡ãã»ãŒãžã埩å·ã§ããŸãã:$1",
+ "description": "$1 is error message"
+ },
+ "decryptMessageNotice": {
+ "message": "$1 ã¯ã¡ãã»ãŒãžãèªã¿åã£ãŠã¢ã¯ã·ã§ã³ãå®äºããããšããŠããŸã",
+ "description": "$1 is the web3 site name"
+ },
+ "decryptMetamask": {
+ "message": "ã¡ãã»ãŒãžã埩å·"
+ },
+ "decryptRequest": {
+ "message": "埩å·ã®ãªã¯ãšã¹ã"
+ },
"defaultNetwork": {
- "message": "ããã©ã«ãã®Etheréåä¿¡ãããã¯ãŒã¯ã¯ã¡ã€ã³ãããã§ãã"
+ "message": "ããã©ã«ãã®EtherååŒãããã¯ãŒã¯ã¯ã¡ã€ã³ãããã§ãã"
+ },
+ "delete": {
+ "message": "åé€"
+ },
+ "deleteAccount": {
+ "message": "ã¢ã«ãŠã³ãã®åé€"
+ },
+ "deleteNetwork": {
+ "message": "ãããã¯ãŒã¯ãåé€ããŸãã?"
+ },
+ "deleteNetworkDescription": {
+ "message": "æ¬åœã«ãã®ãããã¯ãŒã¯ãåé€ããŸãã?"
},
"depositEther": {
- "message": "Etherãæ¯èŸŒ"
+ "message": "Etherãå
¥é"
},
"details": {
"message": "詳现"
@@ -167,68 +484,316 @@
"message": "EtherãçŽæ¥å
¥é"
},
"directDepositEtherExplainer": {
- "message": "æ¢ã«Etherããæã¡ãªããMetaMaskã®æ°ãããŠã©ã¬ããã«Etherãéä¿¡ããããšãã§ããŸãã"
+ "message": "Etherãæ¢ã«ãããªããMetaMaskã®æ°ãããŠã©ã¬ããã«Etherãééããããšãã§ããŸãã"
+ },
+ "disconnect": {
+ "message": "åæ"
+ },
+ "disconnectAllAccounts": {
+ "message": "ãã¹ãŠã®ã¢ã«ãŠã³ããåæãã"
+ },
+ "disconnectAllAccountsConfirmationDescription": {
+ "message": "æ¬åœã«åæããŸãã?ãµã€ãã®æ©èœã倱ãå¯èœæ§ããããŸãã"
+ },
+ "disconnectPrompt": {
+ "message": "$1 ãåæ"
+ },
+ "disconnectThisAccount": {
+ "message": "ãã®ã¢ã«ãŠã³ããåæ"
+ },
+ "dismiss": {
+ "message": "åŽäž"
},
"done": {
"message": "å®äº"
},
+ "dontHaveAHardwareWallet": {
+ "message": "ããŒããŠã§ã¢ãŠã©ã¬ããããæã¡ã§ã¯ãããŸããã?"
+ },
+ "dontShowThisAgain": {
+ "message": "å床衚瀺ããªã"
+ },
+ "downloadGoogleChrome": {
+ "message": "Google Chromeã®ããŠã³ããŒã"
+ },
+ "downloadSecretBackup": {
+ "message": "ã·ãŒããã¬ãŒãºãããŠã³ããŒãããŠãå€éšã®æå·åãããããŒããŠã§ã¢ãã©ã€ããŸãã¯ã¹ãã¬ãŒãžåªäœã«å®å
šã«ä¿ç®¡ããŠãã ããã"
+ },
+ "downloadStateLogs": {
+ "message": "ç¶æ
ãã°ã®ããŠã³ããŒã"
+ },
+ "dropped": {
+ "message": "åé€æž"
+ },
"edit": {
"message": "ç·šé"
},
+ "editContact": {
+ "message": "é£çµ¡å
ã®ç·šé"
+ },
+ "editPermission": {
+ "message": "ã¢ã¯ã»ã¹èš±å¯ã®ç·šé"
+ },
+ "encryptionPublicKeyNotice": {
+ "message": "$1 ã¯å
¬éæå·éµã䜿çšããããšããŠããŸããåæãããšããã®ãµã€ãã¯æå·åãããã¡ãã»ãŒãžãäœæã§ããŸãã",
+ "description": "$1 is the web3 site name"
+ },
+ "encryptionPublicKeyRequest": {
+ "message": "å
¬éæå·éµã®èŠæ±"
+ },
+ "endOfFlowMessage1": {
+ "message": "ãã¹ãã«åæ ŒããŸãããã·ãŒããã¬ãŒãºãå®å
šã«ä¿ç®¡ããŠãã ãããããã¯å©çšè
ã®è²¬åã§ãã"
+ },
"endOfFlowMessage10": {
"message": "å
šãŠå®äº"
},
+ "endOfFlowMessage2": {
+ "message": "å®å
šã«ä¿ç®¡ããããã®ãã³ã"
+ },
+ "endOfFlowMessage3": {
+ "message": "ããã¯ã¢ããã¯è€æ°ã®å Žæã«ä¿ç®¡ããŠãã ããã"
+ },
+ "endOfFlowMessage4": {
+ "message": "ã·ãŒããã¬ãŒãºã¯çµ¶å¯Ÿã«èª°ã«ãæããªãã§ãã ããã"
+ },
+ "endOfFlowMessage5": {
+ "message": "ãã£ãã·ã³ã°è©æ¬ºã«æ³šæããŠãã ãã!MetaMaskã¯èªçºçã«ã·ãŒããã¬ãŒãºã絶察ã«èŠæ±ããŸããã"
+ },
+ "endOfFlowMessage6": {
+ "message": "ã·ãŒããã¬ãŒãºãå床ããã¯ã¢ããããå Žåã¯ã[èšå®] -> [ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒ] ã§èŠã€ããããšãã§ããŸãã"
+ },
+ "endOfFlowMessage7": {
+ "message": "åé¡ãäžå¯©ãªç¹ãããå Žåã¯ãsupport@metamask.io å®ã«é»åã¡ãŒã«ããéããã ããã"
+ },
+ "endOfFlowMessage8": {
+ "message": "MetaMaskã¯ã·ãŒããã¬ãŒãºã埩å
ã§ããŸããã"
+ },
+ "endOfFlowMessage9": {
+ "message": "詳现ã衚瀺ã"
+ },
+ "endpointReturnedDifferentChainId": {
+ "message": "ãšã³ããã€ã³ãã¯å¥ã®ãã§ãŒã³ID:$1 ãè¿ããŠããŸãã",
+ "description": "$1 is the return value of eth_chainId from an RPC endpoint"
+ },
+ "ensNotFoundOnCurrentNetwork": {
+ "message": "ENSåãçŸåšã®ãããã¯ãŒã¯äžã§èŠã€ãããŸãããEthereumã¡ã€ã³ããããžã®åãæ¿ããè©Šã¿ãŠãã ããã"
+ },
+ "ensRegistrationError": {
+ "message": "ENSåã®ç»é²ã®ãšã©ãŒã§ã"
+ },
+ "enterAnAlias": {
+ "message": "ãšã€ãªã¢ã¹ãå
¥åããŠãã ãã"
+ },
+ "enterMaxSpendLimit": {
+ "message": "䜿çšé床é¡ã®æ倧å€ãå
¥åããŠãã ãã"
+ },
"enterPassword": {
- "message": "ãã¹ã¯ãŒããå
¥å"
+ "message": "ãã¹ã¯ãŒããå
¥åããŠãã ãã"
+ },
+ "enterPasswordContinue": {
+ "message": "ç¶è¡ããã«ã¯ããã¹ã¯ãŒããå
¥åããŠãã ãã"
+ },
+ "errorCode": {
+ "message": "ã³ãŒã:$1",
+ "description": "Displayed error code for debugging purposes. $1 is the error code"
+ },
+ "errorDetails": {
+ "message": "ãšã©ãŒã®è©³çŽ°",
+ "description": "Title for collapsible section that displays error details for debugging purposes"
+ },
+ "errorMessage": {
+ "message": "ã¡ãã»ãŒãž:$1",
+ "description": "Displayed error message for debugging purposes. $1 is the error message"
+ },
+ "errorName": {
+ "message": "ãšã©ãŒå:$1",
+ "description": "Displayed error name for debugging purposes. $1 is the error name"
+ },
+ "errorPageMessage": {
+ "message": "ããŒãžããªããŒãããŠåè©Šè¡ãããããµããŒã(support@metamask.io)ãŸã§ãåãåãããã ãã",
+ "description": "Message displayed on generic error page in the fullscreen or notification UI"
+ },
+ "errorPagePopupMessage": {
+ "message": "ãããã¢ãããéããŠããåã³éããŠããäžåºŠå®è¡ãããããµããŒã(support@metamask.io)ãŸã§ãåãåãããã ãã",
+ "description": "Message displayed on generic error page in the popup UI"
+ },
+ "errorPageTitle": {
+ "message": "MetaMaskã«ãšã©ãŒãçºçããŸãã",
+ "description": "Title of generic error page"
+ },
+ "errorStack": {
+ "message": "ã¹ã¿ãã¯:",
+ "description": "Title for error stack, which is displayed for debugging purposes"
+ },
+ "estimatedProcessingTimes": {
+ "message": "æšå®åŠçæé"
+ },
+ "eth_accounts": {
+ "message": "èš±å¯ããã¢ã«ãŠã³ãã®ã¢ãã¬ã¹ã®èªã¿åã(å¿
é )",
+ "description": "The description for the `eth_accounts` permission"
+ },
+ "ethereumPublicAddress": {
+ "message": "ãããªãã¯Ethereumã¢ãã¬ã¹"
+ },
+ "etherscan": {
+ "message": "Etherscan"
},
"etherscanView": {
- "message": "Etherscanã§ã¢ã«ãŠã³ãã確èª"
+ "message": "Etherscanã§ã¢ã«ãŠã³ãã衚瀺"
+ },
+ "expandView": {
+ "message": "ãŠã€ã³ããŠã§è¡šç€º"
},
"exportPrivateKey": {
"message": "ç§å¯éµã®ãšã¯ã¹ããŒã"
},
+ "externalExtension": {
+ "message": "å€éšæ¡åŒµæ©èœ"
+ },
+ "extraApprovalGas": {
+ "message": "+$1 æ¿èªGas",
+ "description": "Expresses an additional gas amount the user will have to pay, on top of some other displayed amount. $1 is a decimal amount of gas"
+ },
"failed": {
"message": "倱æ"
},
+ "failedToFetchChainId": {
+ "message": "ãã§ãŒã³IDãåã蟌ãããšãã§ããŸããã§ãããRPCã®URLãæ£ããã確èªããŠãã ããã"
+ },
+ "failureMessage": {
+ "message": "åé¡ãçºçããŸãããã¢ã¯ã·ã§ã³ãå®äºããããšãã§ããŸãã"
+ },
+ "fast": {
+ "message": "é«é"
+ },
+ "fastest": {
+ "message": "æé«é"
+ },
+ "feeAssociatedRequest": {
+ "message": "ãã®ãªã¯ãšã¹ãã«ãããææ°æã§ãã"
+ },
"fiat": {
"message": "æ³å®é貚",
"description": "Exchange type"
},
"fileImportFail": {
- "message": "ãã¡ã€ã«ãã€ã³ããŒããããªããã°ããããã¯ãªãã¯!",
+ "message": "ãã¡ã€ã«ã®ã€ã³ããŒãæ¹æ³ã«ã€ããŠ",
"description": "Helps user import their account from a JSON file"
},
+ "forbiddenIpfsGateway": {
+ "message": "IPFSã²ãŒããŠã§ã€ã®äœ¿çšã¯çŠæ¢ãããŠããŸã:CID ã²ãŒããŠã§ã€ãæå®ããŠãã ãã"
+ },
+ "forgetDevice": {
+ "message": "ãã®ããã€ã¹ãç¡èŠãã"
+ },
"from": {
"message": "éä¿¡å
"
},
+ "fromAddress": {
+ "message": "éä¿¡å
:$1",
+ "description": "$1 is the address to include in the From label. It is typically shortened first using shortenAddress"
+ },
+ "functionApprove": {
+ "message": "æ©èœ:æ¿èª"
+ },
+ "functionType": {
+ "message": "æ©èœã®çš®é¡"
+ },
"gasLimit": {
- "message": "ã¬ã¹ãªããã"
+ "message": "Gasãªããã"
+ },
+ "gasLimitInfoTooltipContent": {
+ "message": "Gasãªãããã¯ã䜿çšããã¬ã¹ã®æ倧éã§ãã"
},
"gasLimitTooLow": {
- "message": "ã¬ã¹ãªãããã¯æäœ21000ã§ãã"
+ "message": "Gasãªãããã¯21000以äžã«ããå¿
èŠããããŸã"
+ },
+ "gasLimitTooLowWithDynamicFee": {
+ "message": "Gasãªããã㯠$1 以äžã«ããå¿
èŠããããŸã",
+ "description": "$1 is the custom gas limit, in decimal."
},
"gasPrice": {
- "message": "ã¬ã¹ãã©ã€ã¹ (GWEI)"
+ "message": "GasäŸ¡æ Œ (GWEI)"
+ },
+ "gasPriceExtremelyLow": {
+ "message": "GasäŸ¡æ Œãå®ãããŸã"
+ },
+ "gasPriceInfoTooltipContent": {
+ "message": "GasäŸ¡æ Œã¯1Gasåœããã®EtheräŸ¡æ Œã§ãã"
+ },
+ "gasUsed": {
+ "message": "Gas䜿çšé"
+ },
+ "gdprMessage": {
+ "message": "ãã®ããŒã¿ã¯ãGeneral Data Protection Regulation (EU) 2016/679 ã®ãããå¿åã§åéãããŸããå人æ
å ±ã®åãæ±ãã«é¢ãã詳现ã«ã€ããŠã¯ã$1 ãã芧ãã ããã",
+ "description": "$1 refers to the gdprMessagePrivacyPolicy message, the translation of which is meant to be used exclusively in the context of gdprMessage"
+ },
+ "gdprMessagePrivacyPolicy": {
+ "message": "ãã©ã€ãã·ãŒããªã·ãŒã¯ãã¡ã",
+ "description": "this translation is intended to be exclusively used as the replacement for the $1 in the gdprMessage translation"
+ },
+ "general": {
+ "message": "äžè¬"
+ },
+ "generalSettingsDescription": {
+ "message": "é貚æç®ãé貚åäœãèšèªãã¢ã«ãŠã³ãã®identicon"
},
"getEther": {
"message": "EtherãååŸãã"
},
"getEtherFromFaucet": {
- "message": "ãã©ãŒã»ãã㧠$1ã®EtherãåŸãããšãã§ããŸãã",
+ "message": "$1 ã®Faucetã§EtherãåŸãããšãã§ããŸãã",
"description": "Displays network name for Ether faucet"
},
+ "getHelp": {
+ "message": "ãµããŒããåããã"
+ },
+ "getStarted": {
+ "message": "ã¯ããã"
+ },
+ "goerli": {
+ "message": "Goerliãã¹ããããã¯ãŒã¯"
+ },
+ "happyToSeeYou": {
+ "message": "ãŸãäŒããŸããã!"
+ },
+ "hardware": {
+ "message": "ããŒããŠã§ã¢"
+ },
+ "hardwareWalletConnected": {
+ "message": "ããŒããŠã§ã¢ãŠã©ã¬ãããæ¥ç¶ãããŸãã"
+ },
+ "hardwareWallets": {
+ "message": "ããŒããŠã§ã¢ãŠã©ã¬ããã®æ¥ç¶"
+ },
+ "hardwareWalletsMsg": {
+ "message": "MetaMaskã«æ¥ç¶ããããŒããŠã§ã¢ãŠã©ã¬ãããéžæããŠãã ãã"
+ },
+ "havingTroubleConnecting": {
+ "message": "æ¥ç¶ã«åé¡ããããŸãã?"
+ },
"here": {
- "message": "ãã",
+ "message": "ãã¡ã",
"description": "as in -click here- for more information (goes with troubleTokenBalances)"
},
+ "hexData": {
+ "message": "16é²æ°ããŒã¿"
+ },
"hide": {
- "message": "é ã"
+ "message": "é衚瀺"
},
"hideTokenPrompt": {
- "message": "ããŒã¯ã³ãé ããŸãã?"
+ "message": "ããŒã¯ã³ãé衚瀺ã«ããŸãã?"
+ },
+ "hideTokenSymbol": {
+ "message": "$1 ãé衚瀺ã«ãã",
+ "description": "$1 is the symbol for a token (e.g. 'DAI')"
+ },
+ "history": {
+ "message": "å±¥æŽ"
},
"import": {
- "message": "è¿œå ",
+ "message": "ã€ã³ããŒã",
"description": "Button to import an account from a selected file"
},
"importAccount": {
@@ -237,137 +802,540 @@
"importAccountMsg": {
"message": "è¿œå ããã¢ã«ãŠã³ãã¯MetaMaskã®ã¢ã«ãŠã³ããã¹ãã¬ãŒãºãšã¯é¢é£ä»ããããŸãããã€ã³ããŒãããã¢ã«ãŠã³ãã«ã€ããŠã®è©³çŽ°ã¯"
},
+ "importAccountSeedPhrase": {
+ "message": "ã·ãŒããã¬ãŒãºã䜿çšããŠã¢ã«ãŠã³ããã€ã³ããŒã"
+ },
+ "importUsingSeed": {
+ "message": "ã¢ã«ãŠã³ãã®ã·ãŒããã¬ãŒãºãã埩å
ãã"
+ },
+ "importWallet": {
+ "message": "ãŠã©ã¬ããã®ã€ã³ããŒã"
+ },
+ "importYourExisting": {
+ "message": "12åèªã®ã·ãŒããã¬ãŒãºã䜿çšããŠæ¢åã®ãŠã©ã¬ãããã€ã³ããŒãããŸã"
+ },
"imported": {
- "message": "ã€ã³ããŒãå®äº",
+ "message": "ã€ã³ããŒãæž",
"description": "status showing that an account has been fully loaded into the keyring"
},
"infoHelp": {
"message": "æ
å ±ãšãã«ã"
},
+ "initialTransactionConfirmed": {
+ "message": "æåã®ãã©ã³ã¶ã¯ã·ã§ã³ããããã¯ãŒã¯ã«ç¢ºèªãããŸãããæ»ãã«ã¯OKãã¯ãªãã¯ããŸãã"
+ },
+ "insufficientBalance": {
+ "message": "æ®é«äžè¶³ã§ãã"
+ },
"insufficientFunds": {
"message": "æ®é«äžè¶³"
},
+ "insufficientTokens": {
+ "message": "ããŒã¯ã³ãäžè¶³ããŠããŸãã"
+ },
"invalidAddress": {
- "message": "ã¢ãã¬ã¹ãç¡å¹ã§ãã"
+ "message": "ç¡å¹ãªã¢ãã¬ã¹ã§ã"
+ },
+ "invalidAddressRecipient": {
+ "message": "ç¡å¹ãªééå
ã¢ãã¬ã¹ã§ã"
+ },
+ "invalidAddressRecipientNotEthNetwork": {
+ "message": "ETH ãããã¯ãŒã¯ã§ã¯ãªããå°æåãèšå®ããŠãã ãã"
+ },
+ "invalidBlockExplorerURL": {
+ "message": "ç¡å¹ãªãããã¯ãšã¯ã¹ãããŒã©URLã§ãã"
+ },
+ "invalidChainIdTooBig": {
+ "message": "ç¡å¹ãªãã§ãŒã³IDã§ãããã§ãŒã³IDã倧ããããŸãã"
+ },
+ "invalidCustomNetworkAlertContent1": {
+ "message": "ã«ã¹ã¿ã ãããã¯ãŒã¯'$1'ã®ãã§ãŒã³IDãåå
¥åããŠãã ããã",
+ "description": "$1 is the name/identifier of the network."
+ },
+ "invalidCustomNetworkAlertContent2": {
+ "message": "æªæãæ¬ é¥ã®ãããããã¯ãŒã¯ãããã€ãããå©çšè
ãä¿è·ããããããã¹ãŠã®ã«ã¹ã¿ã ãããã¯ãŒã¯ã«ãã§ãŒã³IDãå¿
èŠã§ã"
+ },
+ "invalidCustomNetworkAlertContent3": {
+ "message": "èšå® > ãããã¯ãŒã¯ ãéžæããŠããã§ãŒã³IDãå
¥åããŠãã ããããã䜿çšããããããã¯ãŒã¯ã®ãã§ãŒã³ID㯠$1 ã«ãããŸãã",
+ "description": "$1 is a link to https://chainid.network"
+ },
+ "invalidCustomNetworkAlertTitle": {
+ "message": "ç¡å¹ãªã«ã¹ã¿ã ãããã¯ãŒã¯ã§ã"
+ },
+ "invalidHexNumber": {
+ "message": "ç¡å¹ãª10é²æ°ã§ãã"
+ },
+ "invalidHexNumberLeadingZeros": {
+ "message": "ç¡å¹ãª10é²æ°ã§ããå
é ã®0ãåé€ããŠãã ããã"
+ },
+ "invalidIpfsGateway": {
+ "message": "ç¡å¹ãªIPFSã²ãŒããŠã§ã€ã§ã:æ£ããURLãèšå®ããŠãã ããã"
+ },
+ "invalidNumber": {
+ "message": "ç¡å¹ãªæ°å€ã§ãã10é²æ°ããŸãã¯'0x'ãä»ãã16é²æ°ãå
¥åããŸãã"
+ },
+ "invalidNumberLeadingZeros": {
+ "message": "ç¡å¹ãªæ°å€ã§ããå
é ã® 0 ãåé€ããŠãã ããã"
+ },
+ "invalidRPC": {
+ "message": "ç¡å¹ãª RPC URL"
+ },
+ "invalidSeedPhrase": {
+ "message": "ç¡å¹ãªã·ãŒããã¬ãŒãº"
+ },
+ "ipfsGateway": {
+ "message": "IPFSã²ãŒããŠã§ã€"
+ },
+ "ipfsGatewayDescription": {
+ "message": "ENSã³ã³ãã³ãã¬ãŸãªã¥ãŒã·ã§ã³ã«äœ¿çšãããIPFS CIDã²ãŒããŠã§ã€ã®URLãèšå®ããŸã"
},
"jsonFile": {
"message": "JSONãã¡ã€ã«",
"description": "format for importing an account"
},
+ "knownAddressRecipient": {
+ "message": "æ¢ç¥ã®ã³ã³ãã©ã¯ãã¢ãã¬ã¹ã§ãã"
+ },
+ "knownTokenWarning": {
+ "message": "ãã®ã¢ã¯ã·ã§ã³ã¯æ¢ã«ãŠã©ã¬ããäžèŠ§ã«è¡šç€ºããããŒã¯ã³ãç·šéããŸããããã¯ããã£ãã·ã³ã°è©æ¬ºã®æ段ãšããŠæ瀺ãããããšããããŸããå€æŽã®æå³ãæ確ãªå Žåã«ã®ã¿å®æœããŠãã ããã"
+ },
"kovan": {
"message": "Kovanãã¹ããããã¯ãŒã¯"
},
+ "lastConnected": {
+ "message": "æåŸã®æ¥ç¶"
+ },
"learnMore": {
- "message": "詳现"
+ "message": "詳ãã䜿çšæé "
+ },
+ "ledgerAccountRestriction": {
+ "message": "æ°ããã¢ã«ãŠã³ããè¿œå ããã«ã¯ããã®åã«äœ¿çšããæåŸã®ã¢ã«ãŠã³ããå¿
èŠã§ãã"
+ },
+ "letsGoSetUp": {
+ "message": "ã»ããã¢ãããå§ããŸãããïŒ"
},
"likeToAddTokens": {
- "message": "ããŒã¯ã³ãè¿œå ããŸãã?"
+ "message": "ãããã®ããŒã¯ã³ãè¿œå ããŸãã?"
},
"links": {
"message": "ãªã³ã¯"
},
+ "loadMore": {
+ "message": "ç¶ããããŒã"
+ },
"loading": {
- "message": "ããŒãäž..."
+ "message": "ããŒãããŠããŸã..."
},
"loadingTokens": {
- "message": "ããŒã¯ã³ãããŒãäž..."
+ "message": "ããŒã¯ã³ãããŒãããŠããŸã..."
+ },
+ "localhost": {
+ "message": "Localhost 8545"
},
"lock": {
- "message": "ãã°ã¢ãŠã"
+ "message": "ããã¯"
+ },
+ "lockTimeTooGreat": {
+ "message": "ããã¯æéãé·ãããŸã"
},
"mainnet": {
- "message": "Ethereumã¡ã€ã³ãããã¯ãŒã¯"
+ "message": "Ethereumã¡ã€ã³ããã"
},
"max": {
"message": "æ倧"
},
+ "memo": {
+ "message": "ã¡ã¢"
+ },
+ "memorizePhrase": {
+ "message": "ãã®ãã¬ãŒãºãèšé²ããŠãã ããã"
+ },
"message": {
"message": "ã¡ãã»ãŒãž"
},
+ "metaMaskConnectStatusParagraphOne": {
+ "message": "ã¢ã«ãŠã³ãã®æ¥ç¶ãMetaMaskã§è©³çŽ°ã«å¶åŸ¡ã§ããããã«ãªããŸããã"
+ },
+ "metaMaskConnectStatusParagraphThree": {
+ "message": "æ¥ç¶ããŠããã¢ã«ãŠã³ãã管çããã«ã¯ã¯ãªãã¯ããŠãã ããã"
+ },
+ "metaMaskConnectStatusParagraphTwo": {
+ "message": "çŸåšéžæããŠããã¢ã«ãŠã³ãã蚪åäžã®Webãµã€ãã«æ¥ç¶ãããŠããå Žåãæ¥ç¶ã¹ããŒã¿ã¹ãã¿ã³ã衚瀺ãããŸãã"
+ },
+ "metamaskDescription": {
+ "message": "Ethereumã®åæ£åWebã«æ¥ç¶ããŠããŸãã"
+ },
+ "metamaskSwapsOfflineDescription": {
+ "message": "MetaMask Swapsã¯ã¡ã³ããã³ã¹äžã§ããåŸã§ããäžåºŠç¢ºèªããŠãã ããã"
+ },
+ "metamaskVersion": {
+ "message": "MetaMaskã®ããŒãžã§ã³"
+ },
+ "metametricsCommitmentsAllowOptOut": {
+ "message": "èšå®ãããã€ã§ãé¢è±ã§ããŸã"
+ },
+ "metametricsCommitmentsBoldNever": {
+ "message": "å®è¡ããªã",
+ "description": "This string is localized separately from some of the commitments so that we can bold it"
+ },
+ "metametricsCommitmentsIntro": {
+ "message": "MetaMaskãå®è¡ããå
容ã¯âŠ"
+ },
+ "metametricsCommitmentsNeverCollectIP": {
+ "message": "$1 ãèå¥å¯èœãªIPã¢ãã¬ã¹ãåéããããšã¯ãããŸãã",
+ "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'"
+ },
+ "metametricsCommitmentsNeverCollectKeysEtc": {
+ "message": "$1 ã¯ãããŒãã¢ãã¬ã¹ããã©ã³ã¶ã¯ã·ã§ã³ãæ®é«ãããã·ã¥ãªã©ããããªãå人æ
å ±ãåéããŸãã",
+ "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'"
+ },
+ "metametricsCommitmentsNeverSellDataForProfit": {
+ "message": "$1 ãå¶å©ç®çã§ããŒã¿ã販売ããããšã¯'æ°žé ã«'ãããŸããã",
+ "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'"
+ },
+ "metametricsCommitmentsSendAnonymizedEvents": {
+ "message": "å¿ååãããã¯ãªãã¯ã€ãã³ããšããŒãžãã¥ãŒã€ãã³ããéä¿¡ãã"
+ },
+ "metametricsHelpImproveMetaMask": {
+ "message": "MetaMaskã®å質åäžãžã®ãååã®ãé¡ã"
+ },
+ "metametricsOptInDescription": {
+ "message": "MetaMaskã§ã¯ããŠãŒã¶ãŒã«ããæ¡åŒµæ©èœã®æäœæ¹æ³ãããç解ãããããåºæ¬çãªäœ¿çšç¶æ³ããŒã¿ãåéãããŠé ããããšèããŠããŸãããã®ããŒã¿ã¯ãæã
ã®è£œåããã³Ethereumãšã³ã·ã¹ãã ã®äœ¿ãããããšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãç¶ç¶çã«æ¹åããããã«äœ¿çšãããŸãã"
+ },
+ "mobileSyncText": {
+ "message": "æ¬äººèªèšŒã®ããããã¹ã¯ãŒããå
¥åããŠãã ãã!"
+ },
"mustSelectOne": {
- "message": "äžã€ä»¥äžã®ããŒã¯ã³ãéžæããŠãã ããã"
+ "message": "1ã€ä»¥äžã®ããŒã¯ã³ãéžæããŠãã ããã"
},
"myAccounts": {
"message": "ãã€ã¢ã«ãŠã³ã"
},
+ "myWalletAccounts": {
+ "message": "ãã®ãŠã©ã¬ããã®ã¢ã«ãŠã³ã"
+ },
+ "myWalletAccountsDescription": {
+ "message": "MetaMaskã§äœæãããã¹ãŠã®ã¢ã«ãŠã³ãã¯ããã®ã»ã¯ã·ã§ã³ã«èªåçã«è¿œå ãããŸãã"
+ },
"needEtherInWallet": {
- "message": "MetaMaskã§åæ£åã¢ããªã±ãŒã·ã§ã³ã䜿çšããããã«ã¯ããã®ãŠã©ã¬ããã«Etherãå¿
èŠã§ãã"
+ "message": "MetaMaskã§åæ£åã¢ããªã±ãŒã·ã§ã³ãæäœããã«ã¯ããŠã©ã¬ããã«Etherãå¿
èŠã§ãã"
},
"needImportFile": {
"message": "ã€ã³ããŒããããã¡ã€ã«ãéžæããŠãã ããã",
"description": "User is important an account and needs to add a file to continue"
},
+ "negativeETH": {
+ "message": "ãã€ãã¹é¡ã®ETHãéä»ããããšã¯ã§ããŸããã"
+ },
+ "networkName": {
+ "message": "ãããã¯ãŒã¯å"
+ },
+ "networkSettingsChainIdDescription": {
+ "message": "ãã§ãŒã³IDã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®çœ²åã«äœ¿çšããŸãããã§ãŒã³IDã¯ãããã¯ãŒã¯ã®ãã§ãŒã³IDãšäžèŽããå¿
èŠããããŸãã10é²æ°ããŸãã¯'0x'ãä»ãã16é²æ°ãå
¥åããŸãã衚瀺ã¯10é²æ°ã§ãã"
+ },
+ "networkSettingsDescription": {
+ "message": "ã«ã¹ã¿ã RPCãããã¯ãŒã¯ã®è¿œå ãšç·šé"
+ },
"networks": {
"message": "ãããã¯ãŒã¯"
},
+ "nevermind": {
+ "message": "åŸã§è©Šã"
+ },
"newAccount": {
- "message": "æ°èŠã¢ã«ãŠã³ã"
+ "message": "æ°ããã¢ã«ãŠã³ã"
+ },
+ "newAccountDetectedDialogMessage": {
+ "message": "æ°ããã¢ã«ãŠã³ããæ€åºããŸãã!ã¢ãã¬ã¹åž³ã«è¿œå ããã«ã¯ãããã¯ãªãã¯ããŸãã"
},
"newAccountNumberName": {
"message": "ã¢ã«ãŠã³ã $1",
"description": "Default name of next account to be created on create account screen"
},
+ "newContact": {
+ "message": "æ°ããé£çµ¡å
"
+ },
"newContract": {
- "message": "æ°èŠã³ã³ãã©ã¯ã"
+ "message": "æ°ããã³ã³ãã©ã¯ã"
+ },
+ "newNetwork": {
+ "message": "æ°ãããããã¯ãŒã¯"
},
"newPassword": {
- "message": "æ°èŠãã¹ã¯ãŒã(æäœ8æå)"
+ "message": "æ°ãããã¹ã¯ãŒã(æäœ 8æå)"
+ },
+ "newToMetaMask": {
+ "message": "MetaMaskã¯åããŠã§ãã?"
+ },
+ "newTotal": {
+ "message": "æ°ããåèš"
+ },
+ "newTransactionFee": {
+ "message": "æ°ãããã©ã³ã¶ã¯ã·ã§ã³ææ°æ"
},
"next": {
"message": "次ãž"
},
+ "nextNonceWarning": {
+ "message": "Nonce $1 ã¯ææ¡ãããå€ãã倧ããã§ã",
+ "description": "The next nonce according to MetaMask's internal logic"
+ },
+ "noAccountsFound": {
+ "message": "æå®ãããæ€çŽ¢ã¯ãšãªã§ã¢ã«ãŠã³ãã¯èŠã€ãããŸããã§ãã"
+ },
"noAddressForName": {
"message": "ãã®ååã«ã¯ã¢ãã¬ã¹ãèšå®ãããŠããŸããã"
},
"noAlreadyHaveSeed": {
- "message": "ãã§ã«ã·ãŒããæã£ãŠããŸã"
+ "message": "ããããæ¢ã«ã·ãŒããã¬ãŒãºããããŸã"
+ },
+ "noConversionRateAvailable": {
+ "message": "ã©ã®æç®ã¬ãŒããå©çšã§ããŸãã"
+ },
+ "noThanks": {
+ "message": "ãããŠãã"
},
"noTransactions": {
- "message": "ãã©ã³ã¶ã¯ã·ã§ã³ããããŸããã"
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ããããŸãã"
},
- "password": {
- "message": "ãã¹ã¯ãŒã"
+ "noWebcamFound": {
+ "message": "ãã®ã³ã³ãã¥ãŒã¿ãŒã®ãŠã§ãã«ã¡ã©ãèŠã€ãããŸãããããäžåºŠå®è¡ããŠãã ããã"
},
- "pastePrivateKey": {
- "message": "ç§å¯éµãããã«ããŒã¹ãããŠäžãã:",
- "description": "For importing an account from a private key"
+ "noWebcamFoundTitle": {
+ "message": "ãŠã§ãã«ã¡ã©ãèŠã€ãããŸãã"
},
- "privacyMsg": {
- "message": "ãã©ã€ãã·ãŒããªã·ãŒ"
+ "nonceField": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³Nonceã®ã«ã¹ã¿ãã€ãº"
},
- "privateKey": {
- "message": "ç§å¯éµ",
- "description": "select this type of file to use to import an account"
+ "nonceFieldDescription": {
+ "message": "ãªã³ã«ãããšã確èªç»é¢äžã§Nonce(ãã©ã³ã¶ã¯ã·ã§ã³çªå·)ãå€æŽã§ããŸããããã¯é«åºŠãªæ©èœã§ããæ
éã«äœ¿çšããŠãã ããã"
},
- "privateKeyWarning": {
- "message": "èŠå: ãã®éµã¯çµ¶å¯Ÿã«å
¬éããªãã§äžãããå
¬éãããšã誰ã§ãããªãã®ã¢ã«ãŠã³ãå
ã®è³ç£ãçãããšãã§ããŠããŸããŸãã"
+ "nonceFieldHeading": {
+ "message": "ã«ã¹ã¿ã Nonce"
+ },
+ "notCurrentAccount": {
+ "message": "ããã¯æ£ããã¢ã«ãŠã³ãã§ãã?çŸåšãŠã©ã¬ããã§éžæäžã®ã¢ã«ãŠã³ããšç°ãªããŸã"
+ },
+ "notEnoughGas": {
+ "message": "Gasãäžè¶³ããŠããŸã"
+ },
+ "ofTextNofM": {
+ "message": "of"
+ },
+ "off": {
+ "message": "ãªã"
+ },
+ "offlineForMaintenance": {
+ "message": "ã¡ã³ããã³ã¹ã®ããã«ãªãã©ã€ã³ã§ã"
+ },
+ "ok": {
+ "message": "OK"
+ },
+ "on": {
+ "message": "ãªã³"
+ },
+ "onboardingReturnNotice": {
+ "message": "\"$1\" ã¯ãã®ã¿ããéããŸãã $2 ã«æ»ã£ãŠãã ããã",
+ "description": "Return the user to the site that initiated onboarding"
+ },
+ "onlyAddTrustedNetworks": {
+ "message": "æªæã®ããEthereumãããã¯ãŒã¯ãããã€ãã¯ãäžæ£ãªãããã¯ãã§ãŒã³ã«ãããããã¯ãŒã¯è¡åãèšé²ããããšããããŸããä¿¡é Œã§ããã«ã¹ã¿ã ãããã¯ãŒã¯ã®ã¿ãè¿œå ããŠãã ããã"
+ },
+ "onlyAvailableOnMainnet": {
+ "message": "ã¡ã€ã³ãããã®ã¿äœ¿çšå¯èœã§ã"
+ },
+ "onlyConnectTrust": {
+ "message": "ä¿¡é Œãããµã€ãã«ã®ã¿æ¥ç¶ããŠãã ããã"
+ },
+ "optionalBlockExplorerUrl": {
+ "message": "ãããã¯ãšã¯ã¹ãããŒã©ã®URL(ãªãã·ã§ã³)"
+ },
+ "optionalCurrencySymbol": {
+ "message": "é貚ã·ã³ãã«(ãªãã·ã§ã³)"
+ },
+ "orderOneHere": {
+ "message": "Trezoråã¯Ledgerã泚æããŠè³éãã³ãŒã«ãã¹ãã¬ãŒãžã«ä¿ç®¡ã§ããŸã"
+ },
+ "origin": {
+ "message": "èŠæ±å
"
+ },
+ "parameters": {
+ "message": "ãã©ã¡ãŒã¿"
+ },
+ "participateInMetaMetrics": {
+ "message": "MetaMetricsã«åå "
+ },
+ "participateInMetaMetricsDescription": {
+ "message": "MetaMaskã®æ¹åã®ãããMetaMetricsã«åå ããŸã"
+ },
+ "password": {
+ "message": "ãã¹ã¯ãŒã"
+ },
+ "passwordNotLongEnough": {
+ "message": "ãã¹ã¯ãŒãã®é·ãã足ããŸãã"
+ },
+ "passwordsDontMatch": {
+ "message": "ãã¹ã¯ãŒããäžèŽããŸãã"
+ },
+ "pastePrivateKey": {
+ "message": "ç§å¯éµãããŒã¹ãããŠäžãã:",
+ "description": "For importing an account from a private key"
+ },
+ "pending": {
+ "message": "ä¿çäž"
+ },
+ "permissionCheckedIconDescription": {
+ "message": "ãã®èš±å¯ãæ¿èªããŸããã"
+ },
+ "permissionUncheckedIconDescription": {
+ "message": "ãã®èš±å¯ã¯æ¿èªãå®äºããŠããŸããã"
+ },
+ "permissions": {
+ "message": "æš©é"
+ },
+ "personalAddressDetected": {
+ "message": "å人ã¢ãã¬ã¹ãæ€åºãããŸãããããŒã¯ã³ã³ã³ãã©ã¯ãã®ã¢ãã¬ã¹ãå
¥åããŠãã ããã"
+ },
+ "plusXMore": {
+ "message": "+$1 以äž",
+ "description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
+ },
+ "prev": {
+ "message": "æ»ã"
+ },
+ "primaryCurrencySetting": {
+ "message": "åºæºé貚"
+ },
+ "primaryCurrencySettingDescription": {
+ "message": "å€ã®è¡šç€ºããã§ãŒã³ã®é貚(ETHãªã©)ã§åªå
ããã«ã¯ãé貚(ETHãªã©)ãéžæããŸããéžæããåºæºé貚ãåªå
ããã«ã¯ã[æ³å®é貚] ãéžæããŸãã"
+ },
+ "privacyMsg": {
+ "message": "ãã©ã€ãã·ãŒããªã·ãŒ"
+ },
+ "privateKey": {
+ "message": "ç§å¯éµ",
+ "description": "select this type of file to use to import an account"
+ },
+ "privateKeyWarning": {
+ "message": "èŠå: ãã®éµã¯çµ¶å¯Ÿã«å
¬éããªãã§äžãããå
¬éãããšãã¢ã«ãŠã³ãå
ã®è³ç£ãçãŸããŸãã"
},
"privateNetwork": {
- "message": "ãã©ã€ããŒãã»ãããã¯ãŒã¯"
+ "message": "ãã©ã€ããŒããããã¯ãŒã¯"
+ },
+ "proposedApprovalLimit": {
+ "message": "æ¿èªé床é¡ã®ææ¡"
+ },
+ "protectYourKeys": {
+ "message": "ããŒãä¿è·ããŠãã ãã!"
+ },
+ "protectYourKeysMessage1": {
+ "message": "ã·ãŒããã¬ãŒãºã¯å³éã«åãæ±ã£ãŠãã ãããMetaMaskã®åœç©ãWebãµã€ãã§å ±åãããŠããŸããMetaMaskãã·ãŒããã¬ãŒãºãèŠæ±ããããšã¯çµ¶å¯Ÿã«ããããŸãã!"
+ },
+ "protectYourKeysMessage2": {
+ "message": "ã·ãŒããã¬ãŒãºãå³éã«ä¿ç®¡ããŠãã ãããäžå¯©ãªç¹ããWebãµã€ãã«ã€ããŠäžæ確ãªå Žåã¯ãsupport@metamask.io ãŸã§é»åã¡ãŒã«ã§ãåãåãããã ãã"
+ },
+ "provide": {
+ "message": "æäŸãã"
+ },
+ "queue": {
+ "message": "ä¿çäž"
+ },
+ "queued": {
+ "message": "è¿œå æž"
},
"readdToken": {
- "message": "ã¢ã«ãŠã³ãã®ãªãã·ã§ã³ã¡ãã¥ãŒãããããŒã¯ã³ãè¿œå ãããã°ãå°æ¥ãã®ããŒã¯ã³ãè¿œå ãçŽãããšãã§ããŸãã"
+ "message": "ã¢ã«ãŠã³ããªãã·ã§ã³ã®ã¡ãã¥ãŒã§\"ããŒã¯ã³ã®è¿œå \"ãéžæãããšãåŸã§ãã®ããŒã¯ã³ãæ»ãããšãã§ããŸãã"
+ },
+ "readyToConnect": {
+ "message": "æ¥ç¶æºåã¯ããããã§ãã?"
+ },
+ "receive": {
+ "message": "åãåã"
+ },
+ "recents": {
+ "message": "æè¿ã®å±¥æŽ"
},
"recipientAddress": {
- "message": "åå人ã¢ãã¬ã¹"
+ "message": "ååã¢ãã¬ã¹"
+ },
+ "recipientAddressPlaceholder": {
+ "message": "ãããªãã¯ã¢ãã¬ã¹(0x)ããŸãã¯ENSãæ€çŽ¢"
},
"reject": {
"message": "æåŠ"
},
+ "rejectAll": {
+ "message": "ãã¹ãŠæåŠ"
+ },
+ "rejectTxsDescription": {
+ "message": "$1åã®ãã©ã³ã¶ã¯ã·ã§ã³ãäžæ¬æåŠããããšããŠããŸãã"
+ },
+ "rejectTxsN": {
+ "message": "$1åã®ãã©ã³ã¶ã¯ã·ã§ã³ãæåŠ"
+ },
"rejected": {
- "message": "æåŠãããŸãã"
+ "message": "æåŠããŸãã"
+ },
+ "remindMeLater": {
+ "message": "åŸã§éç¥"
+ },
+ "remove": {
+ "message": "åé€"
+ },
+ "removeAccount": {
+ "message": "ã¢ã«ãŠã³ãã®åé€"
+ },
+ "removeAccountDescription": {
+ "message": "ãã®ã¢ã«ãŠã³ãã¯ãŠã©ã¬ããããåé€ãããŸããç¶è¡ããåã«ããŠã©ã¬ããã«ã€ã³ããŒãããã¢ã«ãŠã³ãã®ã·ãŒããã¬ãŒãºãç§å¯éµãä¿ç®¡ããŠãã ãããã¢ã«ãŠã³ãã¯ãã¢ã«ãŠã³ãã®ããããããŠã³ããå床ã€ã³ããŒãããŸãã¯äœæã§ããŸãã"
+ },
+ "requestsAwaitingAcknowledgement": {
+ "message": "æ¿èªããããŸã§åŸ
æ©ãã"
},
"required": {
- "message": "å¿
èŠã§ãã"
+ "message": "å¿
é "
+ },
+ "reset": {
+ "message": "ãªã»ãã"
},
"resetAccount": {
"message": "ã¢ã«ãŠã³ãããªã»ãã"
},
+ "resetAccountDescription": {
+ "message": "ã¢ã«ãŠã³ãããªã»ãããããšãã©ã³ã¶ã¯ã·ã§ã³å±¥æŽãã¯ãªã¢ãããŸããã·ãŒããã¬ãŒãºã®åå
¥åã¯äžèŠã§ããããã«ããã¢ã«ãŠã³ãå
ã®æ®é«ãå€æŽãããããšã¯ãããŸããã"
+ },
+ "restore": {
+ "message": "埩å
"
+ },
+ "restoreAccountWithSeed": {
+ "message": "ã·ãŒããã¬ãŒãºã§ã¢ã«ãŠã³ãã埩å
"
+ },
"restoreFromSeed": {
- "message": "ãã¹ãã¬ãŒãºãã埩å
ãã"
+ "message": "ã¢ã«ãŠã³ãã埩å
ããŸãã?"
+ },
+ "restoreWalletPreferences": {
+ "message": "$1 ã®ããŒã¿ããã¯ã¢ãããèŠã€ãããŸããããŠã©ã¬ããã®åºæ¬èšå®ã埩å
ããŸãã?",
+ "description": "$1 is the date at which the data was backed up"
+ },
+ "retryTransaction": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãåè©Šè¡"
+ },
+ "reusedTokenNameWarning": {
+ "message": "æ¢ã«ç»é²ãããŠããããŒã¯ã³ã·ã³ãã«ãšåãã·ã³ãã«ã®ç»é²ã¯ãå§ãããŸãããæ··ä¹±ãæäœãã¹ã®åå ã«ãªããŸãã"
},
"revealSeedWords": {
- "message": "ãã¹ãã¬ãŒãºã衚瀺"
+ "message": "ã·ãŒããã¬ãŒãºã衚瀺"
+ },
+ "revealSeedWordsDescription": {
+ "message": "ãã©ãŠã¶ãå€æŽãããã³ã³ãã¥ãŒã¿ãå€æŽããå Žåã¯ãã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ããããã«ã·ãŒããã¬ãŒãºãå¿
èŠã«ãªããŸããå®å
šã§ç§å¯ã®å Žæã«ä¿ç®¡ããŠãã ããã"
+ },
+ "revealSeedWordsTitle": {
+ "message": "ã·ãŒããã¬ãŒãº"
+ },
+ "revealSeedWordsWarning": {
+ "message": "ã·ãŒããã¬ãŒãºã¯å
šãŠã®ã¢ã«ãŠã³ããçãæ段ã«ã䜿ããŸãã"
+ },
+ "revealSeedWordsWarningTitle": {
+ "message": "ã·ãŒããã¬ãŒãºã¯èª°ã«ãæããªãã§ãã ããã"
},
"rinkeby": {
"message": "Rinkebyãã¹ããããã¯ãŒã¯"
@@ -375,38 +1343,156 @@
"ropsten": {
"message": "Ropstenãã¹ããããã¯ãŒã¯"
},
+ "rpcUrl": {
+ "message": "RPC URL"
+ },
"save": {
"message": "ä¿å"
},
+ "saveAsCsvFile": {
+ "message": "CSVãã¡ã€ã«ãšããŠä¿å"
+ },
+ "scanInstructions": {
+ "message": "ã«ã¡ã©ã§QRã³ãŒãã眮ããŠãã ãã"
+ },
+ "scanQrCode": {
+ "message": "QRã³ãŒãã®ã¹ãã£ã³"
+ },
+ "scrollDown": {
+ "message": "äžãžã¹ã¯ããŒã«"
+ },
"search": {
"message": "æ€çŽ¢"
},
+ "searchAccounts": {
+ "message": "ã¢ã«ãŠã³ãã®æ€çŽ¢"
+ },
"searchResults": {
"message": "æ€çŽ¢çµæ"
},
"searchTokens": {
"message": "ããŒã¯ã³ã®æ€çŽ¢"
},
+ "secretBackupPhrase": {
+ "message": "ã·ãŒããã¬ãŒãºã®ããã¯ã¢ãã"
+ },
+ "secretBackupPhraseDescription": {
+ "message": "ã·ãŒããã¬ãŒãºã䜿çšãããšãã¢ã«ãŠã³ãã®ããã¯ã¢ãããšåŸ©å
ãç°¡åã«ãªããŸãã"
+ },
+ "secretBackupPhraseWarning": {
+ "message": "èŠå:ã·ãŒããã¬ãŒãºã¯çµ¶å¯Ÿã«å
¬éããªãã§ãã ãããã·ãŒããã¬ãŒãºã䜿ããšã誰ã§ãã¢ã«ãŠã³ãããETHãçã¿åºããŸãã"
+ },
+ "secretPhrase": {
+ "message": "ã¢ã«ãŠã³ãæ
å ±ã埩å
ããã«ã¯ã12åèªã§æ§æãããã·ãŒããã¬ãŒãºãå
¥åããŠãã ããã"
+ },
+ "securityAndPrivacy": {
+ "message": "ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒ"
+ },
+ "securitySettingsDescription": {
+ "message": "ãã©ã€ãã·ãŒã®èšå®ãšãŠã©ã¬ããã®ã·ãŒããã¬ãŒãº"
+ },
+ "seedPhrasePlaceholder": {
+ "message": "ã·ãŒããã¬ãŒãºãåèªããšã«åè§ã¹ããŒã¹ã§åå²ããŠå
¥åããŠäžãã"
+ },
+ "seedPhrasePlaceholderPaste": {
+ "message": "ã·ãŒããã¬ãŒãºãã¯ãªããããŒãããããŒã¹ãããŠäžãã"
+ },
+ "seedPhraseReq": {
+ "message": "ã·ãŒããã¬ãŒãºã«ã¯ã12,15,18,21ããŸãã¯24åèªãå«ãŸããŸã"
+ },
+ "selectAHigherGasFee": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã®åŠçãæ©ããã«ã¯ãããé«ãã¬ã¹æéãéžæããŠãã ããã"
+ },
+ "selectAccounts": {
+ "message": "ã¢ã«ãŠã³ããéžæããŠãã ãã"
+ },
+ "selectAll": {
+ "message": "ãã¹ãŠéžæ"
+ },
+ "selectAnAccount": {
+ "message": "ã¢ã«ãŠã³ãã1åéžæ"
+ },
+ "selectAnAccountHelp": {
+ "message": "MetaMaskã§è¡šç€ºããã¢ã«ãŠã³ããéžæããŠãã ãã"
+ },
"selectCurrency": {
"message": "é貚ãéžæ"
},
+ "selectEachPhrase": {
+ "message": "åèªãéžæããŠãåãã¬ãŒãºãæ£ããããšã確èªããŠãã ããã"
+ },
+ "selectHdPath": {
+ "message": "HDãã¹ã®éžæ"
+ },
+ "selectLocale": {
+ "message": "èšèªã®éžæ"
+ },
+ "selectPathHelp": {
+ "message": "æ¢åã®Ledgerã®ã¢ã«ãŠã³ãã以äžã«è¡šç€ºãããªãå Žåã¯ããã¹ã \"Legacy (MEW / MyCrypto)\" ã«å€ããŠãã ããã"
+ },
"selectType": {
- "message": "ããŒã®çš®é¡"
+ "message": "圢åŒã®éžæ"
+ },
+ "selectingAllWillAllow": {
+ "message": "ãã¹ãŠãéžæãããšããã®ãµã€ãã¯çŸåšã®å
šã¢ã«ãŠã³ããèŠãããšãã§ããŸãããµã€ããä¿¡é Œã§ããã確èªããŠãã ããã"
},
"send": {
- "message": "éä¿¡"
+ "message": "éã"
+ },
+ "sendAmount": {
+ "message": "ééé¡"
},
"sendETH": {
- "message": "ETHã®éä¿¡"
+ "message": "ETHã®éé"
+ },
+ "sendSpecifiedTokens": {
+ "message": "$1 ãéã",
+ "description": "Symbol of the specified token"
},
"sendTokens": {
- "message": "ããŒã¯ã³ãéä¿¡"
+ "message": "ããŒã¯ã³ãéã"
+ },
+ "sentEther": {
+ "message": "Etherã®éé"
+ },
+ "separateEachWord": {
+ "message": "åèªããšã«1æåã®ã¹ããŒã¹ã§åé¢ããŠãã ãã"
},
"settings": {
"message": "èšå®"
},
+ "showAdvancedGasInline": {
+ "message": "é«åºŠãªGasã®èšå®"
+ },
+ "showAdvancedGasInlineDescription": {
+ "message": "ãªã³ã«ãããšGasäŸ¡æ ŒãšGasãªããããééç»é¢ãšç¢ºèªç»é¢ã«çŽæ¥è¡šç€ºãããŸãã"
+ },
+ "showFiatConversionInTestnets": {
+ "message": "ãã¹ããããã§æ³å®é貚æç®é¡ã衚瀺"
+ },
+ "showFiatConversionInTestnetsDescription": {
+ "message": "ãªã³ã«ãããšããã¹ããããã§æ³å®é貚æç®é¡ã衚瀺ããŸã"
+ },
+ "showHexData": {
+ "message": "16é²ããŒã¿ã®è¡šç€º"
+ },
+ "showHexDataDescription": {
+ "message": "ãªã³ã«ãããšãééç»é¢ã«16é²ããŒã¿ãã£ãŒã«ãã衚瀺ããŸã"
+ },
+ "showIncomingTransactions": {
+ "message": "çä¿¡ãããã©ã³ã¶ã¯ã·ã§ã³ã®è¡šç€º"
+ },
+ "showIncomingTransactionsDescription": {
+ "message": "ãªã³ã«ãããšãEtherscanã䜿çšããŠãçä¿¡ãã©ã³ã¶ã¯ã·ã§ã³ããã©ã³ã¶ã¯ã·ã§ã³ãªã¹ãã«è¡šç€ºããŸã"
+ },
+ "showPermissions": {
+ "message": "æš©éã®è¡šç€º"
+ },
"showPrivateKeys": {
- "message": "ç§å¯éµã衚瀺"
+ "message": "ç§å¯éµã®è¡šç€º"
+ },
+ "showSeedPhrase": {
+ "message": "ã·ãŒããã¬ãŒãºã®è¡šç€º"
},
"sigRequest": {
"message": "眲åãªã¯ãšã¹ã"
@@ -415,64 +1501,642 @@
"message": "眲å"
},
"signNotice": {
- "message": "ãã®ã¡ãã»ãŒãžãžã®çœ²åã¯å±éºãšãªãå¯èœæ§ããããŸãã\nå®å
šã«ä¿¡é Œãããµã€ãããã®ã¡ãã»ãŒãžã®ã¿ã\nããªãã®ã¢ã«ãŠã³ãã§çœ²åããŠäžãããä»åŸã®ããŒãžã§ã³ã§ã¯ã\nãã®å±éºãªã¡ãœããã¯åé€ãããäºå®ã§ãã"
+ "message": "ã¡ãã»ãŒãžãžã®çœ²åã¯ãã¢ã«ãŠã³ãå
šäœã«å¯ŸããŠå±éºãªå¯äœçšãèµ·ããå¯èœæ§ããããŸãã\nå®å
šã«ä¿¡é Œã§ãããµã€ãããã®ã¡ãã»ãŒãžã®ã¿ã«çœ²åããŠãã ããã\nãã®æ¹æ³ã¯å±éºã§ããå°æ¥ã®ããŒãžã§ã³ã§ã¯åé€ãããŸãã"
},
"signatureRequest": {
"message": "眲åãªã¯ãšã¹ã"
},
+ "signatureRequest1": {
+ "message": "ã¡ãã»ãŒãž"
+ },
+ "signed": {
+ "message": "眲åãå®äºããŸãã"
+ },
+ "slow": {
+ "message": "äœé"
+ },
+ "somethingWentWrong": {
+ "message": "ããã
!åé¡ãçºçããŸããã"
+ },
+ "speedUp": {
+ "message": "é«éå"
+ },
+ "speedUpCancellation": {
+ "message": "ãã£ã³ã»ã«ãé«éå"
+ },
+ "speedUpTransaction": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãé«éå"
+ },
+ "spendLimitAmount": {
+ "message": "䜿çšé床é¡"
+ },
+ "spendLimitInsufficient": {
+ "message": "䜿çšé床é¡ãäžååã§ã"
+ },
+ "spendLimitInvalid": {
+ "message": "䜿çšé床é¡ãç¡å¹ã§ããæ£ã®æ°å€ãã§ããå¿
èŠããããŸã"
+ },
+ "spendLimitPermission": {
+ "message": "䜿çšé床é¡ã®èš±å¯"
+ },
+ "spendLimitRequestedBy": {
+ "message": "䜿çšé床é¡ã $1 ã«ãã£ãŠèŠæ±ãããŸãã",
+ "description": "Origin of the site requesting the spend limit"
+ },
+ "spendLimitTooLarge": {
+ "message": "䜿çšé床é¡ãå€ãããŸã"
+ },
+ "stateLogError": {
+ "message": "ç¶æ
ãã°ã®æ€çŽ¢äžã«ãšã©ãŒãçºçããŸããã"
+ },
+ "stateLogFileName": {
+ "message": "MetaMask State Logs"
+ },
+ "stateLogs": {
+ "message": "ç¶æ
ãã°"
+ },
+ "stateLogsDescription": {
+ "message": "ç¶æ
ãã°ã«ã¯ãã¢ã«ãŠã³ãã¢ãã¬ã¹ãšéä¿¡æžã¿ãã©ã³ã¶ã¯ã·ã§ã³ãå«ãŸããŠããŸãã"
+ },
+ "statusConnected": {
+ "message": "æ¥ç¶æž"
+ },
+ "statusNotConnected": {
+ "message": "æªæ¥ç¶"
+ },
+ "step1HardwareWallet": {
+ "message": "1.ããŒããŠã§ã¢ ãŠã©ã¬ããã®æ¥ç¶"
+ },
+ "step1HardwareWalletMsg": {
+ "message": "ã³ã³ãã¥ãŒã¿ãŒã«çŽæ¥ããŒããŠã§ã¢ãŠã©ã¬ãããæ¥ç¶ããŠãã ããã"
+ },
+ "step2HardwareWallet": {
+ "message": "2.ã¢ã«ãŠã³ããéžæ"
+ },
+ "step2HardwareWalletMsg": {
+ "message": "èªåãã¢ã«ãŠã³ããïŒã€éžæããŸãã"
+ },
+ "step3HardwareWallet": {
+ "message": "3.web3ã䜿çšããŠãµã€ãã«æ¥ç¶ããŸããã!"
+ },
+ "step3HardwareWalletMsg": {
+ "message": "Ethereumã¢ã«ãŠã³ããšåãããã«ãããŒããŠã§ã¢ã¢ã«ãŠã³ãã䜿çšããŸããweb3ãµã€ãã«æ¥ç¶ããŠETH ãééããERC20ããŒã¯ã³ãCryptoKittiesã®ãããªããŒã¯ã³ã賌å
¥ããŠä¿ç®¡ã§ããŸãã"
+ },
+ "storePhrase": {
+ "message": "ãã®ãã¬ãŒãºã1Passwordã®ãããªãã¹ã¯ãŒããããŒãžã£ãŒã«ä¿ç®¡ãŠãã ããã"
+ },
+ "submit": {
+ "message": "éä¿¡"
+ },
+ "submitted": {
+ "message": "éä¿¡æžã¿"
+ },
+ "supportCenter": {
+ "message": "ãµããŒãã»ã³ã¿ãŒãžç§»å"
+ },
+ "swap": {
+ "message": "ã¹ã¯ãã"
+ },
+ "swapAdvancedSlippageInfo": {
+ "message": "泚æããæç¹ãšæ³šæãæ¿èªãããæç¹ã§äŸ¡æ Œãå€ããããšãã¹ãªãããŒãžãšåŒã³ãŸããã¹ãªãããŒãžãæ倧ã¹ãªãããŒãžèšå®ãè¶
ãããšãã¹ã¯ããã¯èªåçã«ãã£ã³ã»ã«ãããŸãã"
+ },
+ "swapAggregator": {
+ "message": "ã¢ã°ãªã²ãŒã¿"
+ },
+ "swapAmountReceived": {
+ "message": "åãåãä¿èšŒé¡"
+ },
+ "swapAmountReceivedInfo": {
+ "message": "ããã¯åãåãæäœé¡ã§ããã¹ãªãããŒãžã«åºã¥ããŠããã以äžã®é¡ãåãåãããšãã§ããŸãã"
+ },
+ "swapApproval": {
+ "message": "$1 ã®ã¹ã¯ãããæ¿èª",
+ "description": "Used in the transaction display list to describe a transaction that is an approve call on a token that is to be swapped.. $1 is the symbol of a token that has been approved."
+ },
+ "swapApproveNeedMoreTokens": {
+ "message": "ãã®ã¹ã¯ãããå®äºããã«ã¯ãããã« $1 ã® $2 ãå¿
èŠã§ãã",
+ "description": "Tells the user how many more of a given token they need for a specific swap. $1 is an amount of tokens and $2 is the token symbol."
+ },
+ "swapBetterQuoteAvailable": {
+ "message": "ããè¯ãèŠç©ããããŸãã"
+ },
+ "swapBuildQuotePlaceHolderText": {
+ "message": "$1 ãšäžèŽããããŒã¯ã³ããããŸãã",
+ "description": "Tells the user that a given search string does not match any tokens in our token lists. $1 can be any string of text"
+ },
+ "swapCheckingQuote": {
+ "message": "$1 ããã§ãã¯äž",
+ "description": "Shown to the user during quote loading. $1 is the name of an aggregator. The message indicates that metamask is currently checking if that aggregator has a trade/quote for their requested swap."
+ },
+ "swapCustom": {
+ "message": "ã«ã¹ã¿ã "
+ },
+ "swapDecentralizedExchange": {
+ "message": "åæ£åååŒæ"
+ },
+ "swapEditLimit": {
+ "message": "é床é¡ã®å€æŽ"
+ },
+ "swapEnableDescription": {
+ "message": "MetaMask㧠$1 ã®ã¹ã¯ãããèš±å¯ããŸããïŒå¿
é ïŒ",
+ "description": "Gives the user info about the required approval transaction for swaps. $1 will be the symbol of a token being approved for swaps."
+ },
+ "swapEstimatedNetworkFee": {
+ "message": "æšå®ã®ãããã¯ãŒã¯ææ°æ"
+ },
+ "swapEstimatedNetworkFeeSummary": {
+ "message": "â$1âã¯çŸç¶ããäºæž¬ãããææ°æã§ããæ£ç¢ºãªé¡ã¯ãããã¯ãŒã¯ç¶æ
ã«ãã£ãŠå€ãããŸãã",
+ "description": "$1 will be the translation of swapEstimatedNetworkFee, with the font bolded"
+ },
+ "swapEstimatedNetworkFees": {
+ "message": "æšå®ã®ãããã¯ãŒã¯ææ°æ"
+ },
+ "swapEstimatedNetworkFeesInfo": {
+ "message": "ããã¯ãã¹ã¯ãããå®äºããããã«äœ¿çšããããããã¯ãŒã¯ææ°æã®æšå®å€ã§ããå®éã®é¡ã¯ãããã¯ãŒã¯ã®ç¶æ
ã«ãã£ãŠå€ããå¯èœæ§ããããŸãã"
+ },
+ "swapFailedErrorDescription": {
+ "message": "è³éã¯ãŠã©ã¬ããã«å®å
šã§å©çšå¯èœãªç¶æ
ã«ãããŸãã"
+ },
+ "swapFailedErrorTitle": {
+ "message": "ã¹ã¯ããã«å€±æããŸãã"
+ },
+ "swapFetchingQuotesErrorDescription": {
+ "message": "ãã¬ã¬...åé¡ãçºçããŸãããããäžåºŠå®è¡ããŠãã ããããšã©ãŒã解決ããªãªããã°ãã«ã¹ã¿ããµããŒãæ
åœè
ãžãåãåãããã ããã"
+ },
+ "swapFetchingQuotesErrorTitle": {
+ "message": "èŠç©ã®ååŸãšã©ãŒ"
+ },
+ "swapFetchingTokens": {
+ "message": "ããŒã¯ã³ãåãåºãäž..."
+ },
+ "swapFinalizing": {
+ "message": "çµäºäž..."
+ },
+ "swapHighSlippageWarning": {
+ "message": "éåžžã«å€§ããã¹ãªãããŒãžé¡ã§ããæ¬åœã«å®è¡ããã確èªããŠãã ããã"
+ },
+ "swapIntroLearnMoreHeader": {
+ "message": "詳现ã衚瀺ããŸãã?"
+ },
+ "swapIntroLearnMoreLink": {
+ "message": "MetaMask Swapsã®è©³çŽ°"
+ },
+ "swapIntroLiquiditySourcesLabel": {
+ "message": "æµåæ§ãœãŒã¹ã«ã¯ä»¥äžãå«ãŸããŸãã"
+ },
+ "swapIntroPopupSubTitle": {
+ "message": "ããŒã¯ã³ãMetaMaskã§çŽæ¥ã¹ã¯ããã§ããããã«ãªããŸãããMetaMask Swapsã¯ãå€æ°ã®åæ£åååŒæã¢ã°ãªã²ãŒã¿ãŒãå°éã®ããŒã±ããã¡ãŒã«ãŒãDEXååŒæãçµ±åãããŠãŒã¶ãŒã¯åžžã«æäœã®ãããã¯ãŒã¯ææ°æãæé©ãªäŸ¡æ Œã§ååŒã§ããŸãã"
+ },
+ "swapIntroPopupTitle": {
+ "message": "ããŒã¯ã³ã®ã¹ã¯ããã¯ãã¡ã!"
+ },
+ "swapLearnMoreContractsAuditReview": {
+ "message": "MetaSwapã®ã³ã³ãã©ã¯ãç£æ»ã®ã¬ãã¥ãŒ"
+ },
+ "swapLowSlippageError": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã倱æããå¯èœæ§ããããŸããæ倧ã¹ãªãããŒãžãå°ãªãããŸãã"
+ },
+ "swapMaxNetworkFeeInfo": {
+ "message": " $1 ã¯æ倧æ¯æé¡ã§ãããããã¯ãŒã¯ã®ãã©ããªãã£ãé«ããšã倧ããªå€ã«ãªãããšããããŸãã",
+ "description": "$1 will be the translation of swapMaxNetworkFees, with the font bolded"
+ },
+ "swapMaxNetworkFees": {
+ "message": "æ倧ãããã¯ãŒã¯ææ°æ"
+ },
+ "swapMaxSlippage": {
+ "message": "æ倧ã¹ãªãããŒãž"
+ },
+ "swapMetaMaskFee": {
+ "message": "MetaMaskææ°æ"
+ },
+ "swapMetaMaskFeeDescription": {
+ "message": "MetaMaskã¯ååŒæ¯ã«æäžäœã®æµåæ§ã®äŸçµŠè
ããæè¯äŸ¡æ Œãæ¢ããŸããèŠç©ã«ã¯ $1% ã®ææ°æãèªåçã«çµã¿èŸŒãŸããMetaMaskã®å°æ¥ã®éçºããµããŒãããŸãã",
+ "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number."
+ },
+ "swapNQuotes": {
+ "message": "$1åã®èŠç©",
+ "description": "$1 is the number of quotes that the user can select from when opening the list of quotes on the 'view quote' screen"
+ },
+ "swapNetworkFeeSummary": {
+ "message": "ãããã¯ãŒã¯ææ°æã«ã¯ãã¹ã¯ããã®çµæãEthereumãããã¯ãŒã¯ã«ä¿ç®¡ããè²»çšãå«ãŸããŠããŸããMetaMaskã¯ææ°æããå©çãåŸãŸããã"
+ },
+ "swapNewQuoteIn": {
+ "message": "èŠç©ã®æå¹æé $1",
+ "description": "Tells the user the amount of time until the currently displayed quotes are update. $1 is a time that is counting down from 1:00 to 0:00"
+ },
+ "swapOnceTransactionHasProcess": {
+ "message": "ãã®ãã©ã³ã¶ã¯ã·ã§ã³åŠçãå®äºãããšã$1 ãã¢ã«ãŠã³ãã«è¿œå ãããŸãã",
+ "description": "This message communicates the token that is being transferred. It is shown on the awaiting swap screen. The $1 will be a token symbol."
+ },
+ "swapPriceDifference": {
+ "message": "$1 $2 ($3) ã $4 $5 ($6)ã«ã¹ã¯ããããŸãã",
+ "description": "This message represents the price slippage for the swap. $1 and $4 are a number (ex: 2.89), $2 and $5 are symbols (ex: ETH), and $3 and $6 are fiat currency amounts."
+ },
+ "swapPriceDifferenceTitle": {
+ "message": "äŸ¡æ Œå·®ã¯ $1% ã§ã",
+ "description": "$1 is a number (ex: 1.23) that represents the price difference."
+ },
+ "swapPriceDifferenceTooltip": {
+ "message": "åžå ŽäŸ¡æ Œã®éãã¯ã仲ä»æ¥è
ãè² æ
ããææ°æãåžå ŽèŠæš¡ãååŒéããŸãã¯ååŒäŸ¡æ Œå·®ã®åœ±é¿ãåããããšããããŸãã"
+ },
+ "swapPriceDifferenceUnavailable": {
+ "message": "ããŒã±ããäŸ¡æ Œã¯å©çšã§ããŸãããç¶è¡ããåã«ãè¿éé¡ã«åé¡ããªãããšã確èªããŠãã ããã"
+ },
+ "swapProcessing": {
+ "message": "åŠçäž"
+ },
+ "swapQuoteDetails": {
+ "message": "èŠç©ã®è©³çŽ°"
+ },
+ "swapQuoteDetailsSlippageInfo": {
+ "message": "泚æããæç¹ãšæ³šæãæ¿èªãããæç¹ã§äŸ¡æ Œãå€ããããšã\"ã¹ãªãããŒãž\"ãšåŒã³ãŸããã¹ãªãããŒãžã\"æ倧ã¹ãªãããŒãž\"èšå®ãè¶
ããå Žåãã¹ã¯ããã¯èªåçã«ãã£ã³ã»ã«ãããŸãã"
+ },
+ "swapQuoteIncludesRate": {
+ "message": "èŠç©ã«ã¯ $1% ã®MetaMaskææ°æãå«ãŸããŠããŸã",
+ "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number."
+ },
+ "swapQuoteNofN": {
+ "message": "$2åäžã® $1åã®èŠç©",
+ "description": "A count of loaded quotes shown to the user while they are waiting for quotes to be fetched. $1 is the number of quotes already loaded, and $2 is the total number of quotes to load."
+ },
+ "swapQuoteSource": {
+ "message": "ååŒãœãŒã¹"
+ },
+ "swapQuotesAreRefreshed": {
+ "message": "çŸåšã®ããŒã±ããç¶æ
ãåæ ããŠãèŠç©ã¯ãªã¢ã«ã¿ã€ã æŽæ°ãããŸãã"
+ },
+ "swapQuotesExpiredErrorDescription": {
+ "message": "ææ°ã®ã¬ãŒãã§èŠç©ãååŸããã«ã¯åè©Šè¡ããŠãã ããã"
+ },
+ "swapQuotesExpiredErrorTitle": {
+ "message": "èŠç©ã®ã¿ã€ã ã¢ãŠã"
+ },
+ "swapQuotesNotAvailableErrorDescription": {
+ "message": "ååŒé¡ã調æŽãããã¹ãªãããŒãžãåèšå®ããŠãããäžåºŠå®è¡ããŠãã ããã"
+ },
+ "swapQuotesNotAvailableErrorTitle": {
+ "message": "èŠç©ãååŸã§ããŸãã"
+ },
+ "swapRate": {
+ "message": "ã¬ãŒã"
+ },
+ "swapReceiving": {
+ "message": "ååé¡"
+ },
+ "swapReceivingInfoTooltip": {
+ "message": "ããã¯æšå®å€ã§ããæ£ç¢ºãªé¡ã¯ã¹ãªãããŒãžã«ãã£ãŠç°ãªããŸãã"
+ },
+ "swapRequestForQuotation": {
+ "message": "èŠç©ã®èŠæ±"
+ },
+ "swapSearchForAToken": {
+ "message": "ããŒã¯ã³ãæ€çŽ¢"
+ },
+ "swapSelect": {
+ "message": "éžæ"
+ },
+ "swapSelectAQuote": {
+ "message": "èŠç©ã®éžæ"
+ },
+ "swapSelectAToken": {
+ "message": "ããŒã¯ã³ã®éžæ"
+ },
+ "swapSelectQuotePopoverDescription": {
+ "message": "以äžã¯è€æ°ã®æµåæ§ãœãŒã¹ããåéãããã¹ãŠã®èŠç©ã§ãã"
+ },
+ "swapSlippageTooLow": {
+ "message": "ã¹ãªãããŒãžã¯ 0 ããå€ãããå¿
èŠããããŸãã"
+ },
+ "swapSource": {
+ "message": "æµåæ§ãœãŒã¹"
+ },
+ "swapSourceInfo": {
+ "message": "æè¯ã®ã¬ãŒããšæå°ã®ãããã¯ãŒã¯ææ°æãæ¢ããããè€æ°ã®æµåæ§ãœãŒã¹(ååŒæãã¢ã°ãªã²ãŒã¿ãŒãå°éã®ããŒã±ããã¡ãŒã«ãŒ)ãæ€çŽ¢ããŸãã"
+ },
+ "swapStartSwapping": {
+ "message": "ã¹ã¯ããã®éå§"
+ },
+ "swapSwapFrom": {
+ "message": "ã¹ã¯ããå
"
+ },
+ "swapSwapSwitch": {
+ "message": "ã¹ã¯ããå
ãšå
ã®äº€æ"
+ },
+ "swapSwapTo": {
+ "message": "ã¹ã¯ããå
"
+ },
+ "swapThisWillAllowApprove": {
+ "message": "$1 ã®ã¹ã¯ãããå¯èœã«ãªããŸãã"
+ },
+ "swapTokenAvailable": {
+ "message": "$1 ãã¢ã«ãŠã³ãã«è¿œå ãããŸããã",
+ "description": "This message is shown after a swap is successful and communicates the exact amount of tokens the user has received for a swap. The $1 is a decimal number of tokens followed by the token symbol."
+ },
+ "swapTokenToToken": {
+ "message": "$1 ã $2 ã«ã¹ã¯ãã",
+ "description": "Used in the transaction display list to describe a swap. $1 and $2 are the symbols of tokens in involved in a swap."
+ },
+ "swapTransactionComplete": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãå®äºããŸãã"
+ },
+ "swapUnknown": {
+ "message": "äžæ"
+ },
+ "swapUsingBestQuote": {
+ "message": "æé©ãªèŠç©ã䜿çšãã"
+ },
+ "swapVerifyTokenExplanation": {
+ "message": "è€æ°ã®ããŒã¯ã³ãåãååãšã·ã³ãã«ã§ããããšããããŸããEtherscanã§å®éã®ããŒã¯ã³ã§ã確èªããŠãã ããã"
+ },
+ "swapViewToken": {
+ "message": "$1 ã衚瀺"
+ },
+ "swapYourTokenBalance": {
+ "message": "$1 $2 ã¯ã¹ã¯ããã«äœ¿çšã§ããŸã",
+ "description": "Tells the user how much of a token they have in their balance. $1 is a decimal number amount of tokens, and $2 is a token symbol"
+ },
+ "swapZeroSlippage": {
+ "message": "0% ã¹ãªãããŒãž"
+ },
+ "swapsAdvancedOptions": {
+ "message": "詳现ãªãã·ã§ã³"
+ },
+ "swapsExcessiveSlippageWarning": {
+ "message": "ã¹ãªãããŒãžã倧ããããŠã¬ãŒããæªåããŠããŸããã¹ãªãããŒãžæ倧å€ã 15% æªæºã«ããŠãã ããã"
+ },
+ "swapsMaxSlippage": {
+ "message": "æ倧ã¹ãªãããŒãž"
+ },
+ "swapsNotEnoughForTx": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãå®äºããã«ã¯ $1 ã¯äžååã§ãã",
+ "description": "Tells the user that they don't have enough of a token for a proposed swap. $1 is a token symbol"
+ },
+ "swapsViewInActivity": {
+ "message": "ã¢ã¯ãã£ããã£ã®è¡šç€º"
+ },
+ "switchNetworks": {
+ "message": "ãããã¯ãŒã¯ãåæ¿ã"
+ },
+ "switchToThisAccount": {
+ "message": "ãã®ã¢ã«ãŠã³ããžåæ¿ã"
+ },
+ "symbol": {
+ "message": "ã·ã³ãã«"
+ },
+ "symbolBetweenZeroTwelve": {
+ "message": "ã·ã³ãã«ã¯11æå以äžã«ããå¿
èŠããããŸãã"
+ },
+ "syncWithMobile": {
+ "message": "ã¢ãã€ã«ã¢ããªãšåæ"
+ },
+ "syncWithMobileBeCareful": {
+ "message": "ã³ãŒããã¹ãã£ã³ããåã«ã誰ã«ãç»é¢ãèŠãããŠããªãããšã確èªããŠãã ãã"
+ },
+ "syncWithMobileComplete": {
+ "message": "ããŒã¿ã®åæã«æåããŸãããMetaMaskã¢ãã€ã«ã¢ããªãå©çšã§ããŸã!"
+ },
+ "syncWithMobileDesc": {
+ "message": "ã¢ã«ãŠã³ããšæ
å ±ãã¹ããŒããã©ã³ã¢ããªãšåæãããããšãã§ããŸããMetaMaskã¢ãã€ã«ã¢ããªãéãã\"èšå®\" ã«é²ã¿ã\"ãã©ãŠã¶ãŒæ¡åŒµæ©èœããåæ\" ãã¿ããããŸãã"
+ },
+ "syncWithMobileDescNewUsers": {
+ "message": "MetaMaskã¢ãã€ã«ã¢ããªãåããŠäœ¿çšããå Žåã¯ãã¹ããŒããã©ã³ã以äžã®ã¹ãããã«åŸã£ãŠæäœããŠãã ããã"
+ },
+ "syncWithMobileScanThisCode": {
+ "message": "MetaMaskã¢ãã€ã«ã¢ããªã§ãã®ã³ãŒããã¹ãã£ã³ããŠãã ãã"
+ },
+ "syncWithMobileTitle": {
+ "message": "ã¢ãã€ã«ã¢ããªãšã®åæ"
+ },
+ "syncWithThreeBox": {
+ "message": "ããŒã¿ã3Boxãšåæ(è©Šéšäž)"
+ },
+ "syncWithThreeBoxDescription": {
+ "message": "ãªã³ã«ãããšãèšå®ã3Box ã§ããã¯ã¢ãããããŸãããã®æ©èœã¯è©Šéšäžã§ãããèªèº«ã®è²¬ä»»ã§äœ¿çšããŠãã ããã"
+ },
+ "syncWithThreeBoxDisabled": {
+ "message": "3Boxã¯ãåæåæã®ãšã©ãŒã«ããã䜿çšäžèœã§ãã"
+ },
"terms": {
"message": "å©çšèŠçŽ"
},
+ "termsOfService": {
+ "message": "ãµãŒãã¹å©çšèŠçŽ"
+ },
"testFaucet": {
- "message": "Faucetããã¹ã"
+ "message": "ãã¹ãFaucet"
+ },
+ "thisWillCreate": {
+ "message": "æ°ãããŠã©ã¬ãããšã·ãŒããã¬ãŒãºãäœæãããŸã"
+ },
+ "tips": {
+ "message": "ãã³ã"
},
"to": {
- "message": "éä¿¡å
"
+ "message": "åä¿¡å
"
+ },
+ "toAddress": {
+ "message": "åä¿¡å
:$1",
+ "description": "$1 is the address to include in the To label. It is typically shortened first using shortenAddress"
+ },
+ "toWithColon": {
+ "message": "åä¿¡å
:"
},
"token": {
"message": "ããŒã¯ã³"
},
+ "tokenAlreadyAdded": {
+ "message": "ããŒã¯ã³ã¯æ¢ã«è¿œå ãããŠããŸãã"
+ },
+ "tokenContractAddress": {
+ "message": "ããŒã¯ã³ã³ã³ãã©ã¯ãã®ã¢ãã¬ã¹"
+ },
+ "tokenOptions": {
+ "message": "ããŒã¯ã³ã®ãªãã·ã§ã³"
+ },
"tokenSymbol": {
"message": "ããŒã¯ã³ã·ã³ãã«"
},
"total": {
"message": "åèš"
},
+ "transaction": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³"
+ },
+ "transactionCancelAttempted": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã®ãã£ã³ã»ã«ãGasæé $1 ã§è©Šã¿ãŸããã$2"
+ },
+ "transactionCancelSuccess": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã®ãã£ã³ã»ã«ãæåããŸããã$2"
+ },
+ "transactionConfirmed": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã確å®ããŸããã$2"
+ },
+ "transactionCreated": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã¯ $1 ã®å€ãäœæããŸããã$2"
+ },
+ "transactionDropped": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã¯åé€ãããŸããã$2"
+ },
+ "transactionError": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãšã©ãŒãã³ã³ãã©ã¯ãã³ãŒãã§äŸå€ãã¹ããŒãããŸããã"
+ },
+ "transactionErrorNoContract": {
+ "message": "ã³ã³ãã©ã¯ãå€ã¢ãã¬ã¹ã«å¯ŸããŠé¢æ°åŒåºãè©Šã¿ãŠããŸãã"
+ },
+ "transactionErrored": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ã§ãšã©ãŒãçºçããŸããã"
+ },
+ "transactionFee": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ææ°æ"
+ },
+ "transactionResubmitted": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãè¿œå Gasæé: $1 ã§åéä¿¡ããŸããã$2"
+ },
+ "transactionSubmitted": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãGasæé $1 ã§éä¿¡ãããŸããã$2"
+ },
+ "transactionUpdated": {
+ "message": "ãã©ã³ã¶ã¯ã·ã§ã³ãæŽæ°ãããŸããã$2"
+ },
+ "transfer": {
+ "message": "転é"
+ },
+ "transferBetweenAccounts": {
+ "message": "èªåã®ã¢ã«ãŠã³ãéã§ã®ç§»å"
+ },
+ "transferFrom": {
+ "message": "転éå
"
+ },
+ "troubleConnectingToWallet": {
+ "message": "$1 ãžã®æ¥ç¶ã«å€±æããŸããã $2 ãå確èªããŠãããäžåºŠå®è¡ããŠãã ããã",
+ "description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
+ },
"troubleTokenBalances": {
"message": "ããŒã¯ã³æ®é«ãååŸã§ããŸããããã¡ãã§ã確èªãã ããã",
"description": "Followed by a link (here) to view token balances"
},
+ "trustSiteApprovePermission": {
+ "message": "ãã®ãµã€ããä¿¡é ŒããŸãã?èš±å¯ãäžããããšã«ããã$1 㯠$2 ã®æ¯æãã©ã³ã¶ã¯ã·ã§ã³ãèªååããŸãã",
+ "description": "$1 is the url requesting permission and $2 is the symbol of the currency that the request is for"
+ },
+ "tryAgain": {
+ "message": "åè©Šè¡"
+ },
"typePassword": {
- "message": "ãã¹ã¯ãŒãã®å
¥å"
+ "message": "MetaMaskã®ãã¹ã¯ãŒããå
¥å"
+ },
+ "unapproved": {
+ "message": "æªæ¿èª"
+ },
+ "units": {
+ "message": "åäœ"
},
"unknown": {
"message": "äžæ"
},
+ "unknownCameraError": {
+ "message": "ã«ã¡ã©ã«ã¢ã¯ã»ã¹ããŠãããšãã«ãšã©ãŒãçºçããŸãããããäžåºŠå®è¡ããŠãã ããã"
+ },
+ "unknownCameraErrorTitle": {
+ "message": "ããã
!åé¡ãçºçããŸããã"
+ },
"unknownNetwork": {
"message": "äžæãªãã©ã€ããŒããããã¯ãŒã¯"
},
+ "unknownQrCode": {
+ "message": "ãšã©ãŒ:QRã³ãŒããèå¥ã§ããŸããã§ãã"
+ },
+ "unlimited": {
+ "message": "ç¡å¶é"
+ },
"unlock": {
- "message": "ãã°ã€ã³"
+ "message": "ããã¯è§£é€"
+ },
+ "unlockMessage": {
+ "message": "åæ£åWebãåŸ
ã£ãŠããŸã"
+ },
+ "updatedWithDate": {
+ "message": "$1 ã«æŽæ°ããŸãã"
+ },
+ "urlErrorMsg": {
+ "message": "URLã«ã¯é©åãªHTTP/HTTPSãã¬ãã£ãã¯ã¹ãå¿
èŠã§ãã"
+ },
+ "urlExistsErrorMsg": {
+ "message": "URLã¯ãããã¯ãŒã¯ãªã¹ãã«æ¢ã«ååšããŸã"
+ },
+ "usePhishingDetection": {
+ "message": "ãã£ãã·ã³ã°æ€åºã䜿çš"
+ },
+ "usePhishingDetectionDescription": {
+ "message": "EthereumãŠãŒã¶ãŒã察象ãšãããã¡ã€ã³ã®ãã£ãã·ã³ã°ã«å¯ŸããŠèŠåã衚瀺ããŸã"
},
"usedByClients": {
- "message": "æ§ã
ãªã¯ã©ã€ã¢ã³ãã«ãã£ãŠäœ¿çšãããŠããŸãã"
+ "message": "Ethereumã¯ã©ã€ã¢ã³ããªã©ã§äœ¿çšãããŠããŸãã"
+ },
+ "userName": {
+ "message": "ãŠãŒã¶ãŒå"
+ },
+ "verifyThisTokenOn": {
+ "message": "ããŒã¯ã³ã $1 ã§æ€èšŒãã",
+ "description": "Points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\""
},
"viewAccount": {
- "message": "ã¢ã«ãŠã³ããèŠã"
+ "message": "ã¢ã«ãŠã³ãã衚瀺"
+ },
+ "viewContact": {
+ "message": "é£çµ¡å
ã衚瀺"
+ },
+ "viewOnCustomBlockExplorer": {
+ "message": "$1 ã§è¡šç€º"
},
"viewOnEtherscan": {
- "message": "Etherscan ã§èŠã"
+ "message": "Etherscanã§è¡šç€º"
+ },
+ "viewinExplorer": {
+ "message": "Explorerã§è¡šç€º"
+ },
+ "visitWebSite": {
+ "message": "ãŠã§ããµã€ã"
+ },
+ "walletConnectionGuide": {
+ "message": "ããŒããŠã§ã¢ãŠã©ã¬ããæ¥ç¶ã¬ã€ã"
},
"walletSeed": {
- "message": "ãŠã©ã¬ããã®ãã¹ãã¬ãŒãº"
+ "message": "ã·ãŒããã¬ãŒãº"
+ },
+ "web3ShimUsageNotification": {
+ "message": "ãã®ãµã€ãã¯åé€ãããwindow.web3 APIã䜿çšããŸãããµã€ãã«åé¡ãçºçããŠãããªãã$1 ã§è©³çŽ°ãèŠãããšãã§ããŸãã",
+ "description": "$1 is a clickable link."
},
"welcome": {
- "message": "MetaMask ããŒã¿çãžãããã!"
+ "message": "MetaMaskãžãããã!"
},
"welcomeBack": {
"message": "ãããããªãã!"
},
+ "whatsThis": {
+ "message": "ããã¯äœã§ãã?"
+ },
+ "writePhrase": {
+ "message": "ãã®ãã¹ãã¬ãŒãºãçŽã«æžããŠãå®å
šãªå Žæã«ä¿ç®¡ããŠãã ãããã»ãã¥ãªãã£ãå¿
èŠãªå Žåã¯ããã¬ãŒãºãåå²ããŠè€æ°ã®çŽã«æžãããããããå¥ã®å Žæã«ä¿ç®¡ããŸãã"
+ },
+ "xOfY": {
+ "message": "$1 / $2",
+ "description": "$1 and $2 are intended to be two numbers, where $2 is a total, and $1 is a count towards that total"
+ },
+ "yesLetsTry": {
+ "message": "è©Šã"
+ },
+ "youNeedToAllowCameraAccess": {
+ "message": "ãã®æ©èœã䜿çšããã«ã¯ãã«ã¡ã©ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãå¿
èŠã§ãã"
+ },
"youSign": {
- "message": "眲åããŠããŸãã"
+ "message": "眲åããŠããŸã"
+ },
+ "yourPrivateSeedPhrase": {
+ "message": "ç§å¯ã®ã·ãŒããã¬ãŒãº"
+ },
+ "zeroGasPriceOnSpeedUpError": {
+ "message": "è¿œå ã®GasäŸ¡æ Œã0ã«ã§ããŸãã"
}
}
diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json
index c584e0fc3..864aac504 100644
--- a/app/_locales/zh_CN/messages.json
+++ b/app/_locales/zh_CN/messages.json
@@ -3,13 +3,21 @@
"message": "å
³äº"
},
"aboutSettingsDescription": {
- "message": "çæ¬ãææ¯æ¯æäžå¿åèç³»æ¹åŒã"
+ "message": "çæ¬ãæ¯æäžå¿åèç³»æ¹åŒã"
},
"acceleratingATransaction": {
- "message": "* 讟å®æŽé«ç Gas ä»·æ ŒïŒå 快亀æçå®æè¿åºŠïŒæé«çœç»å¿«éå€çæºçïŒäœæ æ³ä¿è¯æ¯æ¬¡åèœå€å®ç°æéã"
+ "message": "* 讟å®æŽé«çæä»·æ ŒïŒå¯ä»¥å 快亀æå®æè¿åºŠïŒæé«çœç»å¿«éå€çæºçïŒäœæ æ³ä¿è¯æ¯æ¬¡åèœå€å®ç°æéã"
+ },
+ "acceptTermsOfUse": {
+ "message": "æå·²é
读并åæ $1",
+ "description": "$1 is the `terms` message"
+ },
+ "accessAndSpendNotice": {
+ "message": "$1 å¯ä»¥è®¿é®å¹¶äœ¿çšæ€æ倧æ°é¢",
+ "description": "$1 is the url of the site requesting ability to spend"
},
"accessingYourCamera": {
- "message": "æ£åšè·åçžæºäœ¿çšæé..."
+ "message": "æ£åšè·åæšççžæºâŠâŠ"
},
"account": {
"message": "莊æ·"
@@ -26,11 +34,20 @@
"accountSelectionRequired": {
"message": "æšéèŠéæ©äžäžªèŽŠæ· ïŒ"
},
+ "active": {
+ "message": "åœå"
+ },
+ "activity": {
+ "message": "掻åš"
+ },
"activityLog": {
"message": "掻åšæ¥å¿"
},
+ "addAccount": {
+ "message": "æ·»å äžäžªèŽŠæ·"
+ },
"addAcquiredTokens": {
- "message": "åšMetaMaskäžæ·»å å·²çšç代åž"
+ "message": "åš MetaMask äžæ·»å è·åŸç代åž"
},
"addAlias": {
"message": "æ·»å å«å"
@@ -39,7 +56,7 @@
"message": "æ·»å çœç»"
},
"addRecipient": {
- "message": "æ·»å æ¥å人"
+ "message": "æ·»å æ¥æ¶æ¹"
},
"addSuggestedTokens": {
"message": "æ·»å æšè代åž"
@@ -63,10 +80,58 @@
"message": "é«çº§é项"
},
"advancedSettingsDescription": {
- "message": "访é®åŒåè
åèœïŒäžèœœç¶ææ¥å¿ïŒé眮莊æ·ïŒå®ææµè¯çœç»åèªå®ä¹ RPC ã"
+ "message": "访é®åŒåè
åèœïŒäžèœœç¶ææ¥å¿ïŒé眮莊æ·ïŒè®Ÿçœ®æµè¯çœåèªå®ä¹ RPCã"
+ },
+ "affirmAgree": {
+ "message": "æåæ"
+ },
+ "aggregatorFeeCost": {
+ "message": "èéåšçœç»æç»èŽ¹"
+ },
+ "alertDisableTooltip": {
+ "message": "è¿äžªå¯ä»¥åšâ讟眮 > æéâäžè¿è¡æŽæ¹"
+ },
+ "alertSettingsUnconnectedAccount": {
+ "message": "éæ©äºæªè¿æ¥ç莊æ·æ¶æµè§çœç«"
+ },
+ "alertSettingsUnconnectedAccountDescription": {
+ "message": "åœæšåšæµè§å·²è¿æ¥ç Web3 çœç«ïŒäœåœåéæ©ç莊æ·æ²¡æè¿æ¥æ¶ïŒè¯¥æéäŒåšåŒ¹åºççªå£äžæŸç€ºã"
+ },
+ "alertSettingsWeb3ShimUsage": {
+ "message": "åœçœç«å°è¯äœ¿çšå·²ç»å é€ç window.web3 API"
+ },
+ "alertSettingsWeb3ShimUsageDescription": {
+ "message": "åœæšåšæµè§ççœç«å°è¯äœ¿çšå·²ç»å é€ç window.web3 API æ¶ïŒè¯¥æéäŒåšåŒ¹åºççªå£äžæŸç€ºã"
+ },
+ "alerts": {
+ "message": "æé"
+ },
+ "alertsSettingsDescription": {
+ "message": "å¯çšæçŠçšæ¯äžªæé"
+ },
+ "allowExternalExtensionTo": {
+ "message": "å
讞è¿äžªå€éšæ©å±å°ïŒ"
+ },
+ "allowOriginSpendToken": {
+ "message": "å
讞 $1 䜿çšæšç $2?",
+ "description": "$1 is the url of the site and $2 is the symbol of the token they are requesting to spend"
+ },
+ "allowThisSiteTo": {
+ "message": "å
讞æ¬çœç«ïŒ"
+ },
+ "allowWithdrawAndSpend": {
+ "message": "å
讞 $1 æååæå€æ¶èŽ¹ä»¥äžæ°é¢ïŒ",
+ "description": "The url of the site that requested permission to 'withdraw and spend'"
},
"amount": {
- "message": "æ°é"
+ "message": "æ°é¢"
+ },
+ "amountInEth": {
+ "message": "$1 ETH",
+ "description": "Displays an eth amount to the user. $1 is a decimal number"
+ },
+ "amountWithColon": {
+ "message": "æ°é¢ïŒ"
},
"appDescription": {
"message": "以倪åæµè§åšæ件",
@@ -76,8 +141,18 @@
"message": "MetaMask",
"description": "The name of the application"
},
+ "approvalAndAggregatorTxFeeCost": {
+ "message": "æ¹åèååçœç»æç»èŽ¹"
+ },
+ "approvalTxGasCost": {
+ "message": "æ¹å亀æçæææ¬"
+ },
"approve": {
- "message": "æ¹å"
+ "message": "æ¹åæ¶èŽ¹éé¢"
+ },
+ "approveSpendLimit": {
+ "message": "æ¹å $1 æ¶èŽ¹éé¢",
+ "description": "The token symbol that is being approved"
},
"approved": {
"message": "å·²æ¹å"
@@ -85,23 +160,29 @@
"asset": {
"message": "èµäº§"
},
+ "assets": {
+ "message": "èµäº§"
+ },
"attemptToCancel": {
"message": "æ³èŠåæ¶åïŒ"
},
"attemptToCancelDescription": {
- "message": "确讀æ亀该æäœæ æ³ä¿è¯èœå€æååæ¶æšçåå§äº€æãåŠæåæ¶æåïŒæšå°è¢«æ¶åäžè¿°äº€æ莹çšã"
+ "message": "确讀æ亀该æäœæ æ³ä¿è¯èœå€æååæ¶æšçåå§äº€æãåŠåæ¶æåïŒæšå°è¢«æ¶åäžè¿°äº€æ莹ã"
},
"attemptingConnect": {
- "message": "æ£åšå°è¯è¿æ¥åºåéŸã"
+ "message": "æ£åšå°è¯è¿æ¥å°åºåéŸã"
},
"attributions": {
"message": "æ¥æº"
},
+ "authorizedPermissions": {
+ "message": "æšå·²ææ以äžæé"
+ },
"autoLockTimeLimit": {
- "message": "èªåšæ³šé计æ¶åšïŒåéïŒ"
+ "message": "èªåšéå®å®æ¶ïŒåéïŒ"
},
"autoLockTimeLimitDescription": {
- "message": "请讟眮 MetaMask èªåšæ³šéåç空é²æ¶éŽïŒä»¥åé䞺åäœïŒ"
+ "message": "请讟眮 MetaMask èªåšéå®åç空é²æ¶éŽïŒåäœïŒåéïŒ"
},
"average": {
"message": "å¹³ååŒ"
@@ -110,19 +191,19 @@
"message": "è¿å"
},
"backToAll": {
- "message": "æ¢å€ææ讟眮"
+ "message": "è¿åå
šéš"
},
"backupApprovalInfo": {
"message": "åŠæäžæ
䞢倱䞪人讟å€ïŒå¿è®°å¯ç ïŒæè
éèŠéæ°å®è£
MetaMaskïŒäºŠææ¯éåšåŠäžå°è®Ÿå€äžæåŒé±å
ïŒè¯·äœ¿çšè¯¥ä¿å¯ç æ¢å€äžªäººé±å
æ°æ®ã"
},
"backupApprovalNotice": {
- "message": "请å€ä»œæšçç§å¯æ¢å€ä»£ç ïŒä¿è¯äžªäººé±å
åèµéå®å
šã"
+ "message": "请å€ä»œæšç莊æ·å©è®°è¯ïŒä¿è¯æšçé±å
åèµéå®å
šã"
},
"backupNow": {
"message": "ç«å³å€ä»œ"
},
"balance": {
- "message": "äœé¢ïŒ"
+ "message": "äœé¢ "
},
"balanceOutdated": {
"message": "äœé¢å¯èœå·²è¿æ"
@@ -131,21 +212,24 @@
"message": "åºæ¬"
},
"blockExplorerUrl": {
- "message": "å±èœç®¡çåš"
+ "message": "åºåæµè§åš"
},
"blockExplorerView": {
"message": "éè¿ $1 æ¥ç莊æ·",
"description": "$1 replaced by URL for custom block explorer"
},
"blockiesIdenticon": {
- "message": "䜿çšåºåIdenticon"
+ "message": "äœ¿çš Blockies Identicon åŸæ 倎å"
},
"browserNotSupported": {
- "message": "æšçæµè§åšäžæ¯æ该åèœâŠ"
+ "message": "æšçæµè§åšäžæ¯æ该åèœâŠâŠ"
},
"builtInCalifornia": {
"message": "MetaMaskåšå å©çŠå°Œäºè®Ÿè®¡åå¶é ã"
},
+ "buy": {
+ "message": "èŽä¹°"
+ },
"buyWithWyre": {
"message": "äœ¿çš Wyre èŽä¹° ETH"
},
@@ -155,11 +239,14 @@
"bytes": {
"message": "åè"
},
+ "canToggleInSettings": {
+ "message": "æšå¯ä»¥åš 讟眮 -> æé äžéæ°å¯çšè¯¥æééç¥ã"
+ },
"cancel": {
"message": "åæ¶"
},
"cancellationGasFee": {
- "message": "åæ¶ Gas 莹"
+ "message": "åæ¶äº€æçæ莹çš"
},
"cancelled": {
"message": "å·²åæ¶"
@@ -168,7 +255,7 @@
"message": "éŸ ID"
},
"chromeRequiredForHardwareWallets": {
- "message": "æšéèŠéè¿ Google Chrome æµè§åšäœ¿çš MetaMask ïŒè¿æ¥äžªäººç¡¬ä»¶é±å
ã"
+ "message": "æšéèŠåšè°·ææµè§åšïŒGoogle ChromeïŒäžäœ¿çš MetaMask æèœè¿æ¥å°æšç硬件é±å
ã"
},
"clickToRevealSeed": {
"message": "ç¹å»æ€å€æŸç€ºå¯è¯"
@@ -183,7 +270,7 @@
"message": "确讀å¯ç "
},
"confirmSecretBackupPhrase": {
- "message": "请确讀æšçç§å¯å€ä»œå¯è¯"
+ "message": "请确讀æšç莊æ·å©è®°è¯"
},
"confirmed": {
"message": "确讀"
@@ -194,8 +281,61 @@
"connect": {
"message": "è¿æ¥"
},
+ "connectAccountOrCreate": {
+ "message": "è¿æ¥èŽŠæ·æå建æ°èŽŠæ·"
+ },
"connectHardwareWallet": {
- "message": "éŸæ¥ç¡¬ä»¶é±å
"
+ "message": "è¿æ¥ç¡¬ä»¶é±å
"
+ },
+ "connectManually": {
+ "message": "æåšè¿æ¥å°åœåç«ç¹"
+ },
+ "connectTo": {
+ "message": "è¿æ¥å° $1",
+ "description": "$1 is the name/origin of a web3 site/application that the user can connect to metamask"
+ },
+ "connectToAll": {
+ "message": "è¿æ¥å°æšçå
šéš$1",
+ "description": "$1 will be replaced by the translation of connectToAllAccounts"
+ },
+ "connectToAllAccounts": {
+ "message": "莊æ·",
+ "description": "will replace $1 in connectToAll, completing the sentence 'connect to all of your accounts', will be text that shows list of accounts on hover"
+ },
+ "connectToMultiple": {
+ "message": "è¿æ¥å° $1",
+ "description": "$1 will be replaced by the translation of connectToMultipleNumberOfAccounts"
+ },
+ "connectToMultipleNumberOfAccounts": {
+ "message": "$1 䞪莊æ·",
+ "description": "$1 is the number of accounts to which the web3 site/application is asking to connect; this will substitute $1 in connectToMultiple"
+ },
+ "connectWithMetaMask": {
+ "message": "äœ¿çš MetaMask è¿æ¥"
+ },
+ "connectedAccountsDescriptionPlural": {
+ "message": "æšæ $1 䞪莊æ·è¿æ¥å°äºè¯¥çœç«ã",
+ "description": "$1 is the number of accounts"
+ },
+ "connectedAccountsDescriptionSingular": {
+ "message": "æšæ 1 䞪莊æ·è¿æ¥å°äºè¯¥çœç«ã"
+ },
+ "connectedAccountsEmptyDescription": {
+ "message": "MetaMask 没æè¿æ¥è¿äžªçœç«ãèŠè¿æ¥å° web3 çœç«ïŒè¯·åšä»ä»¬ççœç«äžæŸå°è¿æ¥æé®ã"
+ },
+ "connectedSites": {
+ "message": "å·²è¿æ¥ççœç«"
+ },
+ "connectedSitesDescription": {
+ "message": "$1 å·²è¿æ¥å°è¿äºçœç«ãä»ä»¬å¯ä»¥æ¥çæšç莊æ·å°åã",
+ "description": "$1 is the account name"
+ },
+ "connectedSitesEmptyDescription": {
+ "message": "$1 è¿æ²¡è¿æ¥ä»»äœçœç«ã",
+ "description": "$1 is the account name"
+ },
+ "connecting": {
+ "message": "è¿æ¥äžâŠâŠ"
},
"connectingTo": {
"message": "æ£åšè¿æ¥ $1"
@@ -204,16 +344,25 @@
"message": "æ£åšè¿æ¥ Goerli æµè¯çœç»"
},
"connectingToKovan": {
- "message": "æ£åšè¿æ¥å°Kovanæµè¯çœç»"
+ "message": "æ£åšè¿æ¥å° Kovan æµè¯çœç»"
},
"connectingToMainnet": {
- "message": "æ£åšè¿æ¥å°ä»¥å€ªåäž»çœ"
+ "message": "æ£åšè¿æ¥å°ä»¥å€ªå Ethereum äž»çœ"
},
"connectingToRinkeby": {
- "message": "æ£åšè¿æ¥å°Rinkebyæµè¯çœç»"
+ "message": "æ£åšè¿æ¥å° Rinkeby æµè¯çœç»"
},
"connectingToRopsten": {
- "message": "æ£åšè¿æ¥å°Ropstenæµè¯çœç»"
+ "message": "æ£åšè¿æ¥å° Ropsten æµè¯çœç»"
+ },
+ "contactUs": {
+ "message": "èç³»æ们"
+ },
+ "contacts": {
+ "message": "è系人"
+ },
+ "contactsSettingsDescription": {
+ "message": "æ·»å ãçŒèŸãå é€å管çæšçè系人ã"
},
"continueToWyre": {
"message": "继ç»ååŸ Wyre"
@@ -231,10 +380,10 @@
"message": "亀æ ID å€å¶æå"
},
"copyAddress": {
- "message": "å°å°åå€å¶å°åªèŽŽæ¿"
+ "message": "å€å¶å°åå°åªèŽŽæ¿"
},
"copyPrivateKey": {
- "message": "è¿æ¯äœ çç§é¥ïŒç¹å»å€å¶ïŒ"
+ "message": "è¿æ¯æšçç§é¥ïŒç¹å»å€å¶ïŒ"
},
"copyToClipboard": {
"message": "å€å¶å°åªèŽŽæ¿"
@@ -255,13 +404,19 @@
"message": "å建å¯ç "
},
"currencyConversion": {
- "message": "莧åžå
æ¢"
+ "message": "莧åžèœ¬æ¢"
+ },
+ "currentAccountNotConnected": {
+ "message": "æšçåœå莊æ·æ²¡æè¿æ¥"
+ },
+ "currentExtension": {
+ "message": "åœåæ©å±é¡µ"
},
"currentLanguage": {
"message": "åœåè¯èš"
},
"customGas": {
- "message": "èªå®ä¹ Gas"
+ "message": "èªå®ä¹çæ"
},
"customGasSubTitle": {
"message": "æå莹çšå¯èœäŒçŒ©çå€çæ¶éŽïŒäœäžä¿è¯ç»å¯¹ææã"
@@ -269,17 +424,43 @@
"customRPC": {
"message": "èªå®ä¹ RPC"
},
+ "customSpendLimit": {
+ "message": "èªå®ä¹æ¶èŽ¹éé¢"
+ },
"customToken": {
"message": "èªå®ä¹ä»£åž"
},
+ "dataBackupFoundInfo": {
+ "message": "æšçéšå莊æ·æ°æ®å·²åšä¹åå®è£
ç MetaMask æ¶å€ä»œãå
¶äžå¯èœå
æ¬æšç讟眮ãè系人å代åžãæšç°åšæ³æ¢å€è¿äºæ°æ®åïŒ"
+ },
"decimal": {
- "message": "粟确å°æ°ç¹"
+ "message": "å°æ°ç²ŸåºŠ"
},
"decimalsMustZerotoTen": {
"message": "å°æ°äœæå°äžº0并äžäžè¶
è¿36äœ."
},
+ "decrypt": {
+ "message": "解å¯"
+ },
+ "decryptCopy": {
+ "message": "å€å¶å å¯ä¿¡æ¯"
+ },
+ "decryptInlineError": {
+ "message": "æ æ³è§£å¯æ€æ¶æ¯ïŒé误ïŒ$1",
+ "description": "$1 is error message"
+ },
+ "decryptMessageNotice": {
+ "message": "$1 åžæé
读æ€ä¿¡æ¯æ¥å®ææšçæäœã",
+ "description": "$1 is the web3 site name"
+ },
+ "decryptMetamask": {
+ "message": "解å¯ä¿¡æ¯"
+ },
+ "decryptRequest": {
+ "message": "解å¯è¯·æ±"
+ },
"defaultNetwork": {
- "message": "é»è®€ä»¥å€ªå亀æçœç»äžºäž»çœã"
+ "message": "é»è®€ä»¥å€ªåïŒEtherïŒäº€æçœç»äžºäž»çœã"
},
"delete": {
"message": "å é€"
@@ -288,10 +469,10 @@
"message": "å é€èŽŠæ·"
},
"deleteNetwork": {
- "message": "æ¯åŠå é€çœç»ïŒ"
+ "message": "å é€çœç»ïŒ"
},
"deleteNetworkDescription": {
- "message": "æšæ¯åŠç¡®è®€èŠå é€è¯¥çœç»ïŒ"
+ "message": "æ¯åŠç¡®è®€èŠå é€è¯¥çœç»ïŒ"
},
"depositEther": {
"message": "åå
¥ Ether"
@@ -303,7 +484,25 @@
"message": "çŽæ¥åå
¥ Ether"
},
"directDepositEtherExplainer": {
- "message": "åŠæäœ å·²ç»æäºäžäº EtherïŒéè¿çŽæ¥èœ¬å
¥æ¯äœ çæ°é±å
è·å Ether çæå¿«æ·æ¹åŒã"
+ "message": "åŠææšå·²ç»æäºäžäº EtherïŒæå¿«æ·çæ¹æ³å°±æ¯çŽæ¥åæ°é±å
åå
¥ Etherã"
+ },
+ "disconnect": {
+ "message": "æåŒ"
+ },
+ "disconnectAllAccounts": {
+ "message": "æåŒææ莊æ·"
+ },
+ "disconnectAllAccountsConfirmationDescription": {
+ "message": "æšç¡®å®èŠæåŒè¿æ¥åïŒæšå¯èœäŒå€±å»çœç«åèœã"
+ },
+ "disconnectPrompt": {
+ "message": "æåŒ $1"
+ },
+ "disconnectThisAccount": {
+ "message": "æåŒæ€èŽŠæ·çè¿æ¥"
+ },
+ "dismiss": {
+ "message": "å
³é"
},
"done": {
"message": "å®æ"
@@ -311,14 +510,17 @@
"dontHaveAHardwareWallet": {
"message": "没æ硬件é±å
ïŒ"
},
+ "dontShowThisAgain": {
+ "message": "äžåæŸç€º"
+ },
"downloadGoogleChrome": {
"message": "äžèœœ Google Chrome æµè§åš"
},
"downloadSecretBackup": {
- "message": "äžèœœç§å¯å€ä»œå¯è¯ïŒå¹¶äœ¿çšå€éšå å¯ç¡¬çæååšåªä»åŠ¥åä¿ç®¡ã"
+ "message": "äžèœœèŽŠæ·å©è®°è¯ïŒå¹¶å°å
¶å®å
šä¿ååšå€éšå å¯ç¡¬çæååšä»èŽšäžã"
},
"downloadStateLogs": {
- "message": "äžèœœæ¥å¿"
+ "message": "äžèœœç¶ææ¥å¿"
},
"dropped": {
"message": "䞢åŒ"
@@ -329,36 +531,50 @@
"editContact": {
"message": "çŒèŸè系人"
},
+ "editPermission": {
+ "message": "çŒèŸæé"
+ },
+ "encryptionPublicKeyNotice": {
+ "message": "$1 åžæåŸå°æšçå å¯å
¬é¥ãåæå该çœç«å°å¯ä»¥æ³æšåéå å¯ä¿¡æ¯ã",
+ "description": "$1 is the web3 site name"
+ },
+ "encryptionPublicKeyRequest": {
+ "message": "ç³è¯·å å¯å
¬é¥"
+ },
"endOfFlowMessage1": {
- "message": "æšå·²éè¿æµè¯ - 请劥åä¿ç®¡äœ çç§åå¯è¯ãè¿æ¯æšç莣任ïŒ"
+ "message": "æšéè¿äºæµè¯ââ ä¿ç®¡å¥œæšç莊æ·å©è®°è¯ïŒè¿æ¯æšç莣任!"
},
"endOfFlowMessage10": {
"message": "å
šéšå®æ"
},
"endOfFlowMessage2": {
- "message": "å®å
šä¿åå°æå·§"
+ "message": "å®å
šä¿åæå·§"
},
"endOfFlowMessage3": {
"message": "åšå€å€ä¿åå€ä»œæ°æ®ã"
},
"endOfFlowMessage4": {
- "message": "ç»äžåä»»äœå享该å¯è¯ã"
+ "message": "äžåä»»äœä»»äœäººå享该莊æ·å©è®°è¯ã"
},
"endOfFlowMessage5": {
- "message": "è°šé²çœç»é鱌ïŒMetaMask ç»äžäŒäž»åšèŠæ±æšæäŸäžªäººç§åå¯è¯ã"
+ "message": "è°šé²çœç»é鱌ïŒMetaMask ç»äžäŒäž»åšèŠæ±æšæäŸäžªäººèŽŠæ·å©è®°è¯ã"
},
"endOfFlowMessage6": {
- "message": "åŠææšéèŠå次å€ä»œäžªäººç§åå¯è¯ïŒè¯·éè¿è®Ÿçœ® -> å®å
šé项å®æ该æäœã"
+ "message": "åŠææšéèŠå次å€ä»œèŽŠæ·å©è®°è¯ïŒè¯·éè¿è®Ÿçœ® -> å®å
šé项å®æ该æäœã"
},
"endOfFlowMessage7": {
"message": "åŠææšä»åæçé®æåç°ä»»äœå¯ççå°æ¹ïŒè¯·åéçµåé®ä»¶è³ support@metamask.io è¿è¡åšè¯¢ã"
},
"endOfFlowMessage8": {
- "message": "MetaMask æ æ³æ¢å€æšçç§åå¯è¯ãäºè§£æŽå€ã"
+ "message": "MetaMask æ æ³æ¢å€æšç莊æ·å©è®°è¯ã"
},
"endOfFlowMessage9": {
"message": "äºè§£è¯Šæ
ã"
},
+ "endpointReturnedDifferentChainId": {
+ "message": "RPC 端ç¹äœ¿çšéŸäžåçéŸ ID: $1",
+ "description": "$1 is the return value of eth_chainId from an RPC endpoint"
+ },
"ensNotFoundOnCurrentNetwork": {
"message": "æªåšåœåçœç»æŸå° ENS å称ã请å°è¯åæ¢è³äž»ä»¥å€ªåçœç»ã"
},
@@ -368,20 +584,62 @@
"enterAnAlias": {
"message": "èŸå
¥å«å"
},
+ "enterMaxSpendLimit": {
+ "message": "èŸå
¥æé«æ¶èŽ¹é¢åºŠ"
+ },
"enterPassword": {
- "message": "请èŸå
¥å¯ç "
+ "message": "èŸå
¥å¯ç "
},
"enterPasswordContinue": {
- "message": "请èŸå
¥å¯ç 以继ç»"
+ "message": "èŸå
¥å¯ç 以继ç»"
+ },
+ "errorCode": {
+ "message": "代ç ïŒ$1",
+ "description": "Displayed error code for debugging purposes. $1 is the error code"
+ },
+ "errorDetails": {
+ "message": "é误诊æ
",
+ "description": "Title for collapsible section that displays error details for debugging purposes"
+ },
+ "errorMessage": {
+ "message": "ä¿¡æ¯ïŒ$1",
+ "description": "Displayed error message for debugging purposes. $1 is the error message"
+ },
+ "errorName": {
+ "message": "代ç ïŒ$1",
+ "description": "Displayed error name for debugging purposes. $1 is the error name"
+ },
+ "errorPageMessage": {
+ "message": "请éæ°å 蜜页é¢éè¯ïŒæéè¿ support@metamask.io èç³»æ¯æã",
+ "description": "Message displayed on generic error page in the fullscreen or notification UI"
+ },
+ "errorPagePopupMessage": {
+ "message": "请å
³é并éæ°æåŒåŒ¹çªåè¯äžæ¬¡ïŒæéè¿ support@metamask.io èç³»æ¯æã",
+ "description": "Message displayed on generic error page in the popup UI"
+ },
+ "errorPageTitle": {
+ "message": "MetaMask éå°äºäžäžªé误",
+ "description": "Title of generic error page"
+ },
+ "errorStack": {
+ "message": "æ ïŒ",
+ "description": "Title for error stack, which is displayed for debugging purposes"
},
"estimatedProcessingTimes": {
- "message": "é¢äŒ°å€çæ¶éŽ"
+ "message": "é¢è®¡å€çæ¶éŽ"
+ },
+ "eth_accounts": {
+ "message": "æ¥çæšå
讞ç莊æ·çå°åïŒå¿
å¡«ïŒ",
+ "description": "The description for the `eth_accounts` permission"
},
"ethereumPublicAddress": {
- "message": "以倪åå
Œ
±å°å"
+ "message": "以倪å Ethereum å
¬åŒå°å"
+ },
+ "etherscan": {
+ "message": "EtherscanïŒä»¥å€ªåæµè§åšïŒ"
},
"etherscanView": {
- "message": "åš Etherscan äžæ¥ç莊æ·"
+ "message": "åš EtherscanïŒä»¥å€ªåæµè§åšïŒäžæ¥ç莊æ·"
},
"expandView": {
"message": "å±åŒè§åŸ"
@@ -389,12 +647,31 @@
"exportPrivateKey": {
"message": "富åºç§é¥"
},
+ "externalExtension": {
+ "message": "å€éšæ©å±"
+ },
+ "extraApprovalGas": {
+ "message": "+$1 æ¹åçæ",
+ "description": "Expresses an additional gas amount the user will have to pay, on top of some other displayed amount. $1 is a decimal amount of gas"
+ },
"failed": {
"message": "倱莥"
},
+ "failedToFetchChainId": {
+ "message": "æ æ³è·åéŸ ICïŒæšç RPC URL å°åæ¯æ£ç¡®çä¹ïŒ"
+ },
+ "failureMessage": {
+ "message": "åºäºç¹é®é¢ïŒæ们æ æ³å®æè¿äžªæäœã"
+ },
"fast": {
"message": "å¿«"
},
+ "fastest": {
+ "message": "æå¿«"
+ },
+ "feeAssociatedRequest": {
+ "message": "æ€è¯·æ±éèŠæ¯ä»äžå®ç莹çšã"
+ },
"fiat": {
"message": "FIAT",
"description": "Exchange type"
@@ -403,47 +680,69 @@
"message": "æ件富å
¥å€±èŽ¥ïŒ ç¹å»è¿éïŒ",
"description": "Helps user import their account from a JSON file"
},
+ "forbiddenIpfsGateway": {
+ "message": "çŠçšç IPFS çœå
³ïŒè¯·æå®äžäžª CID çœå
³"
+ },
"forgetDevice": {
- "message": "åæ¶ä¿åæ€è®Ÿå€"
+ "message": "å¿è®°æ€è®Ÿå€"
},
"from": {
- "message": "æ¥èª"
+ "message": "ä»"
+ },
+ "fromAddress": {
+ "message": "ä»ïŒ$1",
+ "description": "$1 is the address to include in the From label. It is typically shortened first using shortenAddress"
+ },
+ "functionApprove": {
+ "message": "åèœïŒåæ"
},
"functionType": {
"message": "åèœç±»å"
},
"gasLimit": {
- "message": "Gas äžé"
+ "message": "çæéå¶"
},
"gasLimitInfoTooltipContent": {
- "message": "Gas äžéæ¯æšäžªäººåžæä»åºç Gas æ°éäžéã"
+ "message": "çæéå¶æ¯ææšæ¿æè±èŽ¹çæçæéåäœã"
},
"gasLimitTooLow": {
- "message": "Gas äžéè³å°èŠ 21000"
+ "message": "çæéå¶è³å°èŠ 21000"
+ },
+ "gasLimitTooLowWithDynamicFee": {
+ "message": "çæéå¶è³å°èŠ $1",
+ "description": "$1 is the custom gas limit, in decimal."
},
"gasPrice": {
- "message": "Gas ä»·æ Œ (gwei)"
+ "message": "çæä»·æ ŒïŒGWEIïŒ"
},
"gasPriceExtremelyLow": {
- "message": "Gas ä»·æ Œæäœ"
+ "message": "çæä»·æ Œæäœ"
},
"gasPriceInfoTooltipContent": {
- "message": "Gas ä»·æ Œå°è¯Šç»åææ¯äžªä»èŽ¹ Gas åäœç以倪åžéé¢ã"
+ "message": "çæä»·æ Œè§å®äºæšæ¿æ䞺æ¯åäœçææ¯ä»ç Ether æ°éã"
},
"gasUsed": {
- "message": "å·²äœ¿çš Gas é"
+ "message": "çæ䜿çš"
+ },
+ "gdprMessage": {
+ "message": "è¿äºæ°æ®æ¯æ±æ»çïŒå æ€ïŒæ ¹æ®ãGDPR éçšæ°æ®ä¿æ€æ¡äŸã(EU)2016/679ïŒè¿äºæ°æ®æ¯å¿åçãæå
³æ们éç§æ¯äŸçæŽå€ä¿¡æ¯ïŒè¯·åè§æ们ç $1ã",
+ "description": "$1 refers to the gdprMessagePrivacyPolicy message, the translation of which is meant to be used exclusively in the context of gdprMessage"
+ },
+ "gdprMessagePrivacyPolicy": {
+ "message": "éç§æ¿ç",
+ "description": "this translation is intended to be exclusively used as the replacement for the $1 in the gdprMessage translation"
},
"general": {
"message": "éçš"
},
"generalSettingsDescription": {
- "message": "莧åžå
æ¢ãäž»èŠèŽ§åžãè¯èšååç¶èº«ä»œå€Žå"
+ "message": "莧åžèœ¬æ¢ãäž»èŠä»·æ Œåäœãè¯èšå Blockies Identicon åŸæ 倎å"
},
"getEther": {
"message": "è·å Ether"
},
"getEtherFromFaucet": {
- "message": "ä»æ°Žç®¡è·å$1çœç»ç Ether",
+ "message": "ä»æ°Žç®¡è·å $1 çœç»ç Ether",
"description": "Displays network name for Ether faucet"
},
"getHelp": {
@@ -456,19 +755,19 @@
"message": "Goerli æµè¯çœç»"
},
"happyToSeeYou": {
- "message": "æ们åŸé«å
Žäžæšè§é¢ã"
+ "message": "æ们åŸé«å
Žè§å°æšã"
},
"hardware": {
"message": "硬件"
},
"hardwareWalletConnected": {
- "message": "å·²è¿æ¥ç¡¬ä»¶é±å
"
+ "message": "å·²è¿æ¥ç硬件é±å
"
},
"hardwareWallets": {
"message": "è¿æ¥ç¡¬ä»¶é±å
"
},
"hardwareWalletsMsg": {
- "message": "请éæ©åžæçšäº MetaMask ç硬件é±å
"
+ "message": "éæ©åžæçšäº MetaMask ç硬件é±å
"
},
"havingTroubleConnecting": {
"message": "è¿æ¥åºç°é®é¢ïŒ"
@@ -486,6 +785,10 @@
"hideTokenPrompt": {
"message": "éè代åžïŒ"
},
+ "hideTokenSymbol": {
+ "message": "éè $1",
+ "description": "$1 is the symbol for a token (e.g. 'DAI')"
+ },
"history": {
"message": "åå²è®°åœ"
},
@@ -496,17 +799,20 @@
"importAccount": {
"message": "富å
¥èŽŠæ·"
},
+ "importAccountMsg": {
+ "message": "富å
¥ç莊æ·å°äžäŒäžæåå建ç MetaMask 莊æ·å©è®°è¯çžå
³èãäºè§£æŽå€æå
³å¯Œå
¥èŽŠæ·çä¿¡æ¯ ã"
+ },
"importAccountSeedPhrase": {
- "message": "䜿çšç§åå¯è¯å¯Œå
¥èŽŠæ·"
+ "message": "䜿çšèŽŠæ·å©è®°è¯å¯Œå
¥èŽŠæ·"
},
"importUsingSeed": {
- "message": "䜿çšåžå·ç§åå¯è¯å¯Œå
¥"
+ "message": "䜿çšèŽŠæ·å©è®°è¯å¯Œå
¥"
},
"importWallet": {
"message": "富å
¥é±å
"
},
"importYourExisting": {
- "message": "è¯·äœ¿çš 12 åç§åå¯è¯å¯Œå
¥ç°æé±å
"
+ "message": "äœ¿çš 12 䞪åè¯ç莊æ·å©è®°è¯å¯Œå
¥æšç°æçé±å
莊æ·ã"
},
"imported": {
"message": "已富å
¥",
@@ -516,56 +822,100 @@
"message": "ä¿¡æ¯ & åž®å©"
},
"initialTransactionConfirmed": {
- "message": "æšçéŠæ¬¡äº€æå·²éè¿çœç»å®æ确讀ã请ç¹å»âç¡®å®âè¿åã"
+ "message": "æšçåå§äº€æå·²éè¿çœç»ç¡®è®€ã请ç¹å»âç¡®å®âè¿åã"
},
"insufficientBalance": {
"message": "äœé¢äžè¶³ã"
},
"insufficientFunds": {
- "message": "äœé¢äžè¶³."
+ "message": "äœé¢äžè¶³ã"
},
"insufficientTokens": {
- "message": "代åžäœé¢äžè¶³."
+ "message": "代åžäœé¢äžè¶³ã"
},
"invalidAddress": {
"message": "æ æå°å"
},
"invalidAddressRecipient": {
- "message": "æ¶æ¬Ÿå°åäžåæ³"
+ "message": "æ¥æ¶æ¹å°åæ æ"
},
"invalidAddressRecipientNotEthNetwork": {
- "message": "é ETH çœç»ïŒè®Ÿçœ®äžºå°å"
+ "message": "é ETH çœç»ïŒè¯·äœ¿çšå°å"
},
"invalidBlockExplorerURL": {
- "message": "æ æ Block Explorer URI"
+ "message": "æ æçåºåæµè§åš URL"
+ },
+ "invalidChainIdTooBig": {
+ "message": "æ æçéŸ IDïŒè¯¥éŸ ID æ°åè¿å€§ã"
+ },
+ "invalidCustomNetworkAlertContent1": {
+ "message": "éèŠéæ°èŸå
¥èªå®ä¹çœç»'$1'çéŸ IDã",
+ "description": "$1 is the name/identifier of the network."
+ },
+ "invalidCustomNetworkAlertContent2": {
+ "message": "䞺äºä¿æ€æšå
åæ¶æææé®é¢ççœç»æäŸåç䟵害ïŒç°åšææçèªå®ä¹çœç»éœéèŠæäŸéŸ IDã"
+ },
+ "invalidCustomNetworkAlertContent3": {
+ "message": "è¿å
¥è®Ÿçœ® > çœç»å¹¶èŸå
¥éŸ IDãæšå¯ä»¥éè¿ $1 æ¥æŸåžžçšçéŸ IDã",
+ "description": "$1 is a link to https://chainid.network"
+ },
+ "invalidCustomNetworkAlertTitle": {
+ "message": "æ æçèªå®ä¹çœç»"
+ },
+ "invalidHexNumber": {
+ "message": "æ æçåå
è¿å¶æ°ã"
+ },
+ "invalidHexNumberLeadingZeros": {
+ "message": "æ æçåå
è¿å¶æ°ãå»é€ä»»äœåŒå€Žçé¶ã"
+ },
+ "invalidIpfsGateway": {
+ "message": "æ æç IPFS çœå
³ã该åŒå¿
é¡»æ¯äžäžªææç URL"
+ },
+ "invalidNumber": {
+ "message": "æ æçæ°åãèŸå
¥äžäžªæ°åæâ0xâåŒå€Žçåå
è¿å¶æ°ã"
+ },
+ "invalidNumberLeadingZeros": {
+ "message": "æ æçæ°åãå»é€ä»»äœåŒå€Žçé¶ã"
},
"invalidRPC": {
- "message": "æ æ RPC URI"
+ "message": "æ æ RPC URL"
},
"invalidSeedPhrase": {
- "message": "æ æç§åå¯è¯"
+ "message": "æ æç莊æ·å©è®°è¯"
+ },
+ "ipfsGateway": {
+ "message": "IPFS çœå
³"
+ },
+ "ipfsGatewayDescription": {
+ "message": "èŸå
¥çšäº ENS å
容解æç IPFS CID çœå
³ç URLã"
},
"jsonFile": {
"message": "JSON æ件",
"description": "format for importing an account"
},
"knownAddressRecipient": {
- "message": "å·²ç¥è系人å°åã"
+ "message": "å·²ç¥æ¥æ¶æ¹å°åã"
+ },
+ "knownTokenWarning": {
+ "message": "æ€æäœå°çŒèŸå·²ç»åšæšçé±å
äžååºç代åžïŒæè¯èœè¢«çšæ¥æ¬ºéªæšãåªæç¡®å®èŠæŽæ¹è¿äºä»£åžçå
容æ¶ïŒæéè¿æ€æäœã"
},
"kovan": {
"message": "Kovan æµè¯çœç»"
},
+ "lastConnected": {
+ "message": "æåè¿æ¥"
+ },
"learnMore": {
- "message": "æ¥çæŽå€."
+ "message": "æ¥çæŽå€"
},
"ledgerAccountRestriction": {
- "message": "请åšæ°å¢èŽŠæ·åïŒç¡®è®€æ·»å äžäžäžªèŽŠæ·ã"
+ "message": "åšæ·»å æ°ç莊æ·ä¹åïŒéèŠäœ¿çšæšçæåäžäžªèŽŠæ·ã"
},
"letsGoSetUp": {
- "message": "æ¯çãç«å³åŒå§è®Ÿçœ®ïŒ"
+ "message": "第äžæ¬¡ïŒç«å³åŒå§è®Ÿçœ®ïŒ"
},
"likeToAddTokens": {
- "message": "äœ æ³æ·»å è¿äºä»£åžåïŒ"
+ "message": "æšæ³æ·»å è¿äºä»£åžåïŒ"
},
"links": {
"message": "éŸæ¥"
@@ -574,57 +924,115 @@
"message": "å 蜜æŽå€"
},
"loading": {
- "message": "å 蜜äž..."
+ "message": "å 蜜äžâŠâŠ"
},
"loadingTokens": {
- "message": "å 蜜代åžäž..."
+ "message": "å 蜜代åžäžâŠâŠ"
+ },
+ "localhost": {
+ "message": "Localhost 8545"
},
"lock": {
"message": "éå®"
},
+ "lockTimeTooGreat": {
+ "message": "éå®æ¶éŽè¿é¿"
+ },
"mainnet": {
- "message": "以倪åäž»çœç»"
+ "message": "以倪å Ethereum äž»çœç»"
},
"max": {
"message": "æ倧"
},
"memo": {
- "message": "å€å¿åœ"
+ "message": "å€å¿"
},
"memorizePhrase": {
- "message": "è®°äœè¯¥å¯è¯ã"
+ "message": "è®°äœè¯¥èŽŠæ·å©è®°è¯ã"
},
"message": {
"message": "æ¶æ¯"
},
+ "metaMaskConnectStatusParagraphOne": {
+ "message": "ç°åšæšå¯åš MetaMask äžå¯¹èŽŠæ·è¿æ¥è¿è¡æŽå€çæ§å¶ã"
+ },
+ "metaMaskConnectStatusParagraphThree": {
+ "message": "ç¹å»ç®¡çè¿æ¥ç莊æ·ã"
+ },
+ "metaMaskConnectStatusParagraphTwo": {
+ "message": "è¿æ¥ç¶ææé®æŸç€ºæ访é®ççœç«æ¯åŠäžæšåœåéæ©ç莊æ·è¿æ¥ã"
+ },
"metamaskDescription": {
- "message": "MetaMask is a secure identity vault for Ethereum."
+ "message": "å°æšäž Ethereum åå»äžå¿åçœç»è¿æ¥èµ·æ¥ã"
+ },
+ "metamaskSwapsOfflineDescription": {
+ "message": "MetaMask Swaps æ£åšè¿è¡ç»Žæ€ã请çšå访é®ã"
},
"metamaskVersion": {
"message": "MetaMask çæ¬"
},
+ "metametricsCommitmentsAllowOptOut": {
+ "message": "å§ç»å
讞æšéè¿è®Ÿçœ®éæ©éåº"
+ },
+ "metametricsCommitmentsBoldNever": {
+ "message": "ä»äž",
+ "description": "This string is localized separately from some of the commitments so that we can bold it"
+ },
+ "metametricsCommitmentsIntro": {
+ "message": "MetaMaskâŠâŠ"
+ },
+ "metametricsCommitmentsNeverCollectIP": {
+ "message": "$1æ¶éæšçå®æŽIPå°å",
+ "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'"
+ },
+ "metametricsCommitmentsNeverCollectKeysEtc": {
+ "message": "$1æ¶éå¯é¥ãå°åã亀æè®°åœãäœé¢ãååžæä»»äœäžªäººä¿¡æ¯",
+ "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'"
+ },
+ "metametricsCommitmentsNeverSellDataForProfit": {
+ "message": "$1䞺å©çèåºå®æšçæ°æ®ïŒæ°žè¿äžäŒïŒ",
+ "description": "The $1 is the bolded word 'Never', from 'metametricsCommitmentsBoldNever'"
+ },
+ "metametricsCommitmentsSendAnonymizedEvents": {
+ "message": "åéå¿åçç¹å»å页é¢æµè§äºä»¶ä¿¡æ¯"
+ },
+ "metametricsHelpImproveMetaMask": {
+ "message": "åž®å©æ们让 MetaMask ååŸæŽå¥œ"
+ },
+ "metametricsOptInDescription": {
+ "message": "MetaMask åžææ¶é䜿çšæ°æ®ïŒä»¥æŽå¥œå°äºè§£æ们ççšæ·åŠäœäžæ©å±è¿è¡äºåšãè¿äºæ°æ®å°è¢«çšäºæç»æ¹è¿æ们产åå Ethereum çæç³»ç»çå¯çšæ§åçšæ·äœéªã"
+ },
"mobileSyncText": {
"message": "请èŸå
¥å¯ç 确讀䞪人身仜ïŒ"
},
"mustSelectOne": {
- "message": "è³å°éæ©äžç§ä»£åž."
+ "message": "è³å°éæ© 1 ç§ä»£åžã"
+ },
+ "myAccounts": {
+ "message": "æç莊æ·"
},
"myWalletAccounts": {
"message": "æçé±å
莊æ·"
},
"myWalletAccountsDescription": {
- "message": "ææå·²å建ç MetaMask 莊æ·å°èªåšæ·»å å°è¯¥éšåã"
+ "message": "ææå建ç MetaMask 莊æ·å°èªåšæ·»å å°æ€éšåã"
},
"needEtherInWallet": {
- "message": "äœ¿çš MetaMask äž DAPP 亀äºïŒéèŠäœ çé±å
éæ Etherã"
+ "message": "äœ¿çš MetaMask äžååžåŒåºçšäº€äºïŒéèŠæšçé±å
ééèŠæ Etherã"
},
"needImportFile": {
- "message": "å¿
é¡»éæ©å¯Œå
¥äžäžªæ件ã",
+ "message": "å¿
é¡»éæ©äžäžªæ件æ¥å¯Œå
¥ã",
"description": "User is important an account and needs to add a file to continue"
},
+ "negativeETH": {
+ "message": "äžèœåèŽåŒç ETHã"
+ },
"networkName": {
"message": "çœç»å称"
},
+ "networkSettingsChainIdDescription": {
+ "message": "éŸ ID çšäºçŸçœ²äº€æãå®å¿
é¡»äžçœç»è¿åçéŸ ID çžå¹é
ãæšå¯ä»¥èŸå
¥åè¿å¶æ'0x'åçŒçåå
è¿å¶æ°åïŒäœæ们å°ä»¥åè¿å¶æŸç€ºã"
+ },
"networkSettingsDescription": {
"message": "æ·»å åçŒèŸèªå®ä¹ RPC çœç»"
},
@@ -638,14 +1046,14 @@
"message": "æ°èŽŠæ·"
},
"newAccountDetectedDialogMessage": {
- "message": "æ£æµå°æ°å°åïŒè¯·ç¹å»æ€å€æ·»å è³æšçå°åç°¿ã"
+ "message": "æ£æµå°æ°å°åïŒç¹å»æ·»å è³å°åç°¿ã"
},
"newAccountNumberName": {
"message": "èŽŠæ· $1",
"description": "Default name of next account to be created on create account screen"
},
"newContact": {
- "message": "æ°å¢è系人"
+ "message": "æ°è系人"
},
"newContract": {
"message": "æ°å纊"
@@ -657,37 +1065,59 @@
"message": "æ°å¯ç ïŒè³å° 8 䞪å笊ïŒ"
},
"newToMetaMask": {
- "message": "æ°å¢è³ MetaMaskïŒ"
+ "message": "第äžæ¬¡äœ¿çš MetaMaskïŒ"
},
"newTotal": {
- "message": "æ°å¢å计"
+ "message": "æ°æ»é¢"
},
"newTransactionFee": {
- "message": "æ°å¢äº€æ莹çš"
+ "message": "æ°äº€æ莹çš"
},
"next": {
"message": "äžäžæ¥"
},
+ "nextNonceWarning": {
+ "message": "Nonce é«äºå»ºè®®ç nouce åŒ $1",
+ "description": "The next nonce according to MetaMask's internal logic"
+ },
+ "noAccountsFound": {
+ "message": "没æŸå°æ¥è¯¢ç莊æ·"
+ },
"noAddressForName": {
- "message": "æ€ ENS ååè¿æ²¡ææå®å°åã"
+ "message": "è¿äžªååè¿æ²¡æ讟眮å°åã"
},
"noAlreadyHaveSeed": {
- "message": "äžïŒæå·²ç»æäžäžªç§åå¯è¯äºã"
+ "message": "äžïŒæå·²ç»æäžäžªèŽŠæ·å©è®°è¯äºã"
},
"noConversionRateAvailable": {
- "message": "æ å¯çšå
æ¢ç"
+ "message": "æ å¯çšèœ¬æ¢ç"
+ },
+ "noThanks": {
+ "message": "äžïŒè°¢è°¢"
},
"noTransactions": {
"message": "没æ亀æ"
},
"noWebcamFound": {
- "message": "æŸäžå°æšç䞪人çµèçœç»æå倎ïŒè¯·éè¯ã"
+ "message": "æªæŸå°æšççµèæå倎ã请éè¯ã"
},
"noWebcamFoundTitle": {
- "message": "æªæŸå°çœç»æå倎"
+ "message": "æªæŸå°æå倎"
+ },
+ "nonceField": {
+ "message": "èªå®ä¹äº€æ nonce"
+ },
+ "nonceFieldDescription": {
+ "message": "åŒå¯æ€åèœå¯ä»¥æ¹å确讀å±å¹äžç nonceïŒäº€æå·ïŒãæ€äžºé«çº§åèœïŒè¯·è°šæ
䜿çšã"
+ },
+ "nonceFieldHeading": {
+ "message": "èªå®ä¹ Nonce"
+ },
+ "notCurrentAccount": {
+ "message": "è¿æ¯æ£ç¡®ç莊æ·åïŒè¿äžæšé±å
äžåœåéæ©ç莊æ·äžåã"
},
"notEnoughGas": {
- "message": "Gas äžè¶³"
+ "message": "çæäžè¶³"
},
"ofTextNofM": {
"message": "/"
@@ -695,14 +1125,30 @@
"off": {
"message": "å
³"
},
+ "offlineForMaintenance": {
+ "message": "è±æºç»Žæ€"
+ },
"ok": {
- "message": "确讀"
+ "message": "ç¡®å®"
},
"on": {
"message": "å¯çš"
},
+ "onboardingReturnNotice": {
+ "message": "â$1âäŒå
³éæ€æ çŸïŒçŽæ¥åå° $2",
+ "description": "Return the user to the site that initiated onboarding"
+ },
+ "onlyAddTrustedNetworks": {
+ "message": "æ¶æç Ethereum 以倪åçœç»æäŸåå¯ä»¥äŒªé åºåéŸç¶æïŒå¹¶è®°åœæšççœç»æŽ»åšãåªæ·»å æšä¿¡ä»»çèªå®ä¹çœç»ã"
+ },
+ "onlyAvailableOnMainnet": {
+ "message": "ä»
åšäž»çœïŒmainnetïŒäžæäŸ"
+ },
+ "onlyConnectTrust": {
+ "message": "åªè¿æ¥æšä¿¡ä»»ççœç«ã"
+ },
"optionalBlockExplorerUrl": {
- "message": "å±èœç®¡çåš URLïŒéå¡«ïŒ"
+ "message": "åºåæµè§åš URLïŒéå¡«ïŒ"
},
"optionalCurrencySymbol": {
"message": "笊å·ïŒéå¡«ïŒ"
@@ -732,15 +1178,28 @@
"message": "å¯ç äžå¹é
"
},
"pastePrivateKey": {
- "message": "请ç²èŽŽäœ çç§é¥:",
+ "message": "请ç²èŽŽæšçç§é¥:",
"description": "For importing an account from a private key"
},
"pending": {
"message": "åŸ
å€ç"
},
+ "permissionCheckedIconDescription": {
+ "message": "æšå·²åæ该æé"
+ },
+ "permissionUncheckedIconDescription": {
+ "message": "æšè¿æªåæ该æé"
+ },
+ "permissions": {
+ "message": "æé"
+ },
"personalAddressDetected": {
"message": "æ£æµå°äžªäººå°åã请èŸå
¥ä»£åžå纊å°åã"
},
+ "plusXMore": {
+ "message": "+ $1",
+ "description": "$1 is a number of additional but unshown items in a list- this message will be shown in place of those items"
+ },
"prev": {
"message": "äžäžäžª"
},
@@ -748,7 +1207,7 @@
"message": "äž»èŠèŽ§åž"
},
"primaryCurrencySettingDescription": {
- "message": "请éæ©âæ¬å°âïŒäŒå
æŸç€ºåœå°èŽ§åžéŸä»·åŒïŒåŠ ETH ïŒã请éæ©âæ³å®âïŒäŒå
æŸç€ºéå®æ³å®èŽ§åžä»·åŒã"
+ "message": "请éæ©âæ¬å°âïŒäŒå
æŸç€ºåœå°èŽ§åžéŸä»·åŒïŒåŠ ETH ïŒãéæ©â莧åžâåäŒå
以æé莧åžäœäžºä»·åŒæŸç€ºåäœã"
},
"privacyMsg": {
"message": "éç§æ¿ç"
@@ -758,29 +1217,41 @@
"description": "select this type of file to use to import an account"
},
"privateKeyWarning": {
- "message": "泚æïŒæ°žè¿äžèŠå
¬åŒè¿äžªç§é¥ãä»»äœæ¥æäœ çç§é¥ç人éœå¯ä»¥çªåäœ åžæ·äžçä»»äœèµäº§ã"
+ "message": "泚æïŒæ°žè¿äžèŠå
¬åŒè¿äžªç§é¥ãä»»äœæ¥ææšçç§é¥ç人éœå¯ä»¥çªåæšåžæ·äžçä»»äœèµäº§ã"
},
"privateNetwork": {
"message": "ç§æçœç»"
},
+ "proposedApprovalLimit": {
+ "message": "æè®®ç审æ¹äžé"
+ },
"protectYourKeys": {
"message": "劥åä¿ç®¡æšçå¯é¥ïŒ"
},
"protectYourKeysMessage1": {
- "message": "请泚æ䞪人ç§åå¯è¯å®å
šãæ¥åæŸç€ºæå€äžªçœç«äŒåŸäŒªé MetaMaskãMetaMask ç»äžäŒèŠæ±æšæäŸäžªäººç§åå¯è¯ïŒ"
+ "message": "请泚æ䞪人莊æ·å©è®°è¯çå®å
šãæ¥åæŸç€ºæå€äžªçœç«äŒåŸäŒªé MetaMaskãMetaMask ç»äžäŒèŠæ±æšæäŸäžªäººèŽŠæ·å©è®°è¯ïŒ"
},
"protectYourKeysMessage2": {
- "message": "请劥åä¿ç®¡æšçå¯è¯ãåŠææšåç°ä»»äœå¯ççå°æ¹ïŒææ æ³ç¡®è®€çœç»å®å
šæ§ïŒè¯·åéçµåé®ä»¶è³ support@metamask.io è¿è¡åšè¯¢"
+ "message": "请劥åä¿ç®¡æšç莊æ·å©è®°è¯ãåŠææšåç°ä»»äœå¯ççå°æ¹ïŒææ æ³ç¡®è®€çœç»å®å
šæ§ïŒè¯·åéçµåé®ä»¶è³ support@metamask.io è¿è¡åšè¯¢"
+ },
+ "provide": {
+ "message": "æäŸ"
},
"queue": {
"message": "éå"
},
+ "queued": {
+ "message": "éåäž"
+ },
"readdToken": {
- "message": "ä¹åäœ è¿å¯ä»¥éè¿åžæ·é项èåäžçâæ·»å 代åžâæ¥æ·»å æ€ä»£åžã"
+ "message": "ä¹åæšè¿å¯ä»¥éè¿åžæ·é项èåäžçâæ·»å 代åžâæ¥æ·»å æ€ä»£åžã"
},
"readyToConnect": {
"message": "æ¯åŠåå€è¿æ¥ïŒ"
},
+ "receive": {
+ "message": "æ¥æ¶"
+ },
"recents": {
"message": "æè¿è®°åœ"
},
@@ -794,10 +1265,10 @@
"message": "æç»"
},
"rejectAll": {
- "message": "æç»ææ"
+ "message": "æç»å
šéš"
},
"rejectTxsDescription": {
- "message": "æšå°ææç» $1 ç¬äº€æã"
+ "message": "æšå°æ¹éæç» $1 ç¬äº€æã"
},
"rejectTxsN": {
"message": "æç» $1 ç¬äº€æ"
@@ -809,16 +1280,16 @@
"message": "çšåæé"
},
"remove": {
- "message": "移é€"
+ "message": "å é€"
},
"removeAccount": {
- "message": "移é€åžå·"
+ "message": "å é€èŽŠæ·"
},
"removeAccountDescription": {
- "message": "该莊æ·å·²ä»æšçé±å
äžå é€ã请åšç»§ç»åç»æäœåïŒç¡®è®€æšæ¯åŠå·²æ¥æ该富å
¥èŽŠæ·çåå§ç§åå¯è¯æ䞪人å¯é¥ãæšå¯ä»¥éè¿èŽŠæ·äžæèåå次富å
¥æå建莊æ·ã"
+ "message": "该莊æ·å·²ä»æšçé±å
äžå é€ã请åšç»§ç»åç»æäœåïŒç¡®è®€æšæ¯åŠå·²æ¥æ该富å
¥èŽŠæ·çåå§èŽŠæ·å©è®°è¯æ莊æ·å¯é¥ãæšå¯ä»¥éè¿èŽŠæ·äžæèåå次富å
¥æå建莊æ·ã"
},
"requestsAwaitingAcknowledgement": {
- "message": "çåŸ
确讀ç请æ±"
+ "message": "åŸ
确讀ç请æ±"
},
"required": {
"message": "å¿
å¡«"
@@ -830,31 +1301,41 @@
"message": "é讟莊æ·"
},
"resetAccountDescription": {
- "message": "é眮莊æ·åïŒå°æž
é€æšç䞪人亀æåå²è®°åœã"
+ "message": "é眮莊æ·å°æž
é€æšç亀æåå²è®°åœãè¿äžäŒæ¹åæšèŽŠæ·äžçäœé¢ïŒä¹äžäŒèŠæ±æšéæ°èŸå
¥èŽŠæ·å©è®°è¯ã"
},
"restore": {
"message": "æ¢å€"
},
"restoreAccountWithSeed": {
- "message": "䜿çšç§åå¯è¯æ¢å€äžªäººèŽŠæ·"
+ "message": "䜿çšèŽŠæ·å©è®°è¯æ¢å€æšç莊æ·"
},
"restoreFromSeed": {
"message": "ä»å©è®°è¯è¿å"
},
+ "restoreWalletPreferences": {
+ "message": "å·²æŸå°äº $1 çæ°æ®å€ä»œãæšæ³æ¢å€æšçé±å
讟眮åïŒ",
+ "description": "$1 is the date at which the data was backed up"
+ },
+ "retryTransaction": {
+ "message": "éè¯äº€æ"
+ },
+ "reusedTokenNameWarning": {
+ "message": "æ€å€çäžäžªä»£åžäœ¿çšäºäžæšå
³æ³šçåŠäžäžªä»£åžççžå笊å·ïŒè¿å¯èœäŒè®©äººæå°å°ææ欺éªã"
+ },
"revealSeedWords": {
- "message": "æŸç€ºå©è®°è¯"
+ "message": "æŸç€ºèŽŠæ·å©è®°è¯"
},
"revealSeedWordsDescription": {
- "message": "åŠææšæŽæ¢æµè§åšæ计ç®æºïŒåéèŠäœ¿çšæ€å©è®°è¯è®¿é®æšçåžæ·ã请å°å®ä»¬ä¿ååšå®å
šç§å¯çå°æ¹ã"
+ "message": "åŠææšæŽæ¢æµè§åšæ计ç®æºïŒåéèŠäœ¿çšæ€èŽŠæ·å©è®°è¯è®¿é®æšçåžæ·ã请å°å®ä»¬ä¿ååšå®å
šç§å¯çå°æ¹ã"
},
"revealSeedWordsTitle": {
- "message": "å©è®°è¯"
+ "message": "莊æ·å©è®°è¯"
},
"revealSeedWordsWarning": {
- "message": "å©è®°è¯å¯ä»¥çšæ¥çªåæšçææåžæ·."
+ "message": "该莊æ·å©è®°è¯å¯ä»¥çšæ¥çªåæšçææåžæ·"
},
"revealSeedWordsWarningTitle": {
- "message": "äžèŠå¯¹ä»»äœäººå±ç€ºå©è®°è¯ïŒ"
+ "message": "äžèŠå¯¹ä»»äœäººå±ç€ºæ€èŽŠæ·å©è®°è¯ïŒ"
},
"rinkeby": {
"message": "Rinkeby æµè¯çœç»"
@@ -869,17 +1350,23 @@
"message": "ä¿å"
},
"saveAsCsvFile": {
- "message": "åŠå䞺CSVæ件"
+ "message": "ä¿å䞺 CSV æ件"
},
"scanInstructions": {
- "message": "请å°äºç»Žç 眮äºé倎å"
+ "message": "å°äºç»Žç æŸåšçžæºå"
},
"scanQrCode": {
"message": "æ«æäºç»Žç "
},
+ "scrollDown": {
+ "message": "åäžæ»åš"
+ },
"search": {
"message": "æ玢"
},
+ "searchAccounts": {
+ "message": "æ玢莊æ·"
+ },
"searchResults": {
"message": "æ玢ç»æ"
},
@@ -887,43 +1374,52 @@
"message": "æ玢代åž"
},
"secretBackupPhrase": {
- "message": "ç§å¯å€ä»œå¯è¯"
+ "message": "莊æ·å©è®°è¯"
},
"secretBackupPhraseDescription": {
- "message": "æšç䞪人ç§å¯å€ä»œå¯è¯å¯ä»¥åž®å©æšèœ»æŸå€ä»œåæ¢å€äžªäººèŽŠæ·ã"
+ "message": "æšç莊æ·å©è®°è¯å¯ä»¥åž®å©æšèœ»æŸå€ä»œåæ¢å€äžªäººèŽŠæ·ã"
},
"secretBackupPhraseWarning": {
- "message": "èŠåïŒåå¿åä»äººéé²æšçå€ä»œå¯è¯ãä»»äœäººäžæŠææ该å¯è¯ïŒå³å¯åèµ°æšç以倪åžã"
+ "message": "èŠåïŒåå¿åä»äººéé²æšç莊æ·å©è®°è¯ãä»»äœäººäžæŠææ该莊æ·å©è®°è¯ïŒå³å¯æ§å¶æšç Etherã"
},
"secretPhrase": {
- "message": "èŸå
¥12äœå©è®°è¯ä»¥æ¢å€éåº."
+ "message": "èŸå
¥ 12 䞪åè¯ç»æç莊æ·å©è®°è¯æ¢å€æšç莊æ·ã"
},
"securityAndPrivacy": {
"message": "å®å
šäžéç§"
},
"securitySettingsDescription": {
- "message": "éç§è®Ÿçœ®åé±å
ç§åå¯è¯"
+ "message": "éç§è®Ÿçœ®å莊æ·å©è®°è¯"
},
"seedPhrasePlaceholder": {
"message": "çšç©ºæ Œåéæ¯äžªåè¯"
},
+ "seedPhrasePlaceholderPaste": {
+ "message": "ä»åªèŽŽæ¿ç²èŽŽèŽŠæ·å©è®°è¯"
+ },
"seedPhraseReq": {
- "message": "å©è®°è¯äžº12䞪åè¯"
+ "message": "莊æ·å©è®°è¯ç± 12ã15ã18ã21 æ 24 䞪åè¯ç»æ"
},
"selectAHigherGasFee": {
- "message": "请éæ©ä»·æ Œçšé«ç Gas 莹ïŒä»¥å 快亀æå€çé床ã*"
+ "message": "éæ©æŽé«ççæ莹çšïŒæé«äº€æå€çé床ã*"
},
- "selectAnAccount": {
+ "selectAccounts": {
"message": "éæ©èŽŠæ·"
},
+ "selectAll": {
+ "message": "å
šéšéæ©"
+ },
+ "selectAnAccount": {
+ "message": "éæ©äžäžªèŽŠæ·"
+ },
"selectAnAccountHelp": {
- "message": "请éè¿ MetaMask éæ©éèŠæ¥çç莊æ·"
+ "message": "éæ©åš MetaMask äžæ¥çç莊æ·"
},
"selectCurrency": {
"message": "éæ©èŽ§åž"
},
"selectEachPhrase": {
- "message": "请éæ©æ¯äžäžªåè¯ïŒä»¥ç¡®ä¿åè¯æ£ç¡®æ§ã"
+ "message": "请éæ©æ¯äžªåè¯ïŒä»¥ç¡®ä¿å
¶æ£ç¡®æ§ã"
},
"selectHdPath": {
"message": "éæ© HD è·¯åŸ"
@@ -937,20 +1433,27 @@
"selectType": {
"message": "éæ©ç±»å"
},
+ "selectingAllWillAllow": {
+ "message": "éæ©å
šéšå°å
讞æ¬çœç«æ¥çæšåœåçææ莊æ·ãç¡®ä¿æšä¿¡ä»»è¿äžªçœç«ã"
+ },
"send": {
"message": "åé"
},
"sendAmount": {
- "message": "åééé¢"
+ "message": "åéæ°é¢"
},
"sendETH": {
"message": "åé ETH"
},
+ "sendSpecifiedTokens": {
+ "message": "åé $1",
+ "description": "Symbol of the specified token"
+ },
"sendTokens": {
"message": "åé代åž"
},
"sentEther": {
- "message": "以倪åžå·²åé"
+ "message": "åé Ether"
},
"separateEachWord": {
"message": "çšç©ºæ Œåéæ¯äžªåè¯"
@@ -959,10 +1462,10 @@
"message": "讟眮"
},
"showAdvancedGasInline": {
- "message": "é«çº§ Gas æ§å¶"
+ "message": "é«çº§çææ§å¶"
},
"showAdvancedGasInlineDescription": {
- "message": "请éæ©è¯¥é项ïŒçŽæ¥åšåéå确讀页é¢æŸç€º Gas ä»·æ Œåéå¶ç®¡çã"
+ "message": "åšåéå确讀çé¢æŸç€ºçæä»·æ Œåçæéå¶è®Ÿçœ®é项ã"
},
"showFiatConversionInTestnets": {
"message": "åš Testnets äžæŸç€ºå
æ¢ç"
@@ -976,9 +1479,21 @@
"showHexDataDescription": {
"message": "请éæ©è¯¥é项ïŒåšåé页é¢æŸç€ºåå
è¿å¶æ°æ®åå"
},
+ "showIncomingTransactions": {
+ "message": "æŸç€ºæ¶å°ç亀æ"
+ },
+ "showIncomingTransactionsDescription": {
+ "message": "éæ©è¯¥é项å¯äœ¿çš EtherscanïŒä»¥å€ªåæµè§åšïŒïŒä»¥å€ªåæµè§åšïŒåšäº€æåè¡šäžæŸç€ºæ¶å°ç亀æã"
+ },
+ "showPermissions": {
+ "message": "æŸç€ºæé"
+ },
"showPrivateKeys": {
"message": "æŸç€ºç§é¥"
},
+ "showSeedPhrase": {
+ "message": "æŸç€ºèŽŠæ·å©è®°è¯"
+ },
"sigRequest": {
"message": "请æ±çŸå"
},
@@ -986,11 +1501,14 @@
"message": "çŸå"
},
"signNotice": {
- "message": "çŸçœ²æ€æ¶æ¯å¯èœäŒäº§çå±é©çå¯äœçšã \nåªä»äœ å®å
šä¿¡ä»»ççœç«äžçŸåã æªæ¥ççæ¬å°ç§»é€è¿ç§å±é©çæ¹æ³ã"
+ "message": "çŸçœ²æ€æ¶æ¯å¯èœäŒäº§çå±é©çå¯äœçšã \nåªä»æšå®å
šä¿¡ä»»ççœç«äžçŸåã æªæ¥ççæ¬å°ç§»é€è¿ç§å±é©çæ¹æ³ã"
},
"signatureRequest": {
"message": "请æ±çŸå"
},
+ "signatureRequest1": {
+ "message": "ä¿¡æ¯"
+ },
"signed": {
"message": "å·²çŸå"
},
@@ -998,7 +1516,7 @@
"message": "æ
¢"
},
"somethingWentWrong": {
- "message": "ååïŒåºé®é¢äºã"
+ "message": "ç³ç³ïŒåºé®é¢äºã"
},
"speedUp": {
"message": "å é"
@@ -1009,35 +1527,66 @@
"speedUpTransaction": {
"message": "å é该亀ææäœ"
},
+ "spendLimitAmount": {
+ "message": "æ¶èŽ¹éé¢æ°é"
+ },
+ "spendLimitInsufficient": {
+ "message": "æ¶èŽ¹éé¢äžè¶³"
+ },
+ "spendLimitInvalid": {
+ "message": "æ¶èŽ¹éå¶æ æïŒå¿
é¡»æ¯æ£æ°ã"
+ },
+ "spendLimitPermission": {
+ "message": "æ¶èŽ¹éå¶æé"
+ },
+ "spendLimitRequestedBy": {
+ "message": "æ¶èŽ¹éå¶ç³è¯·æ¥èª $1",
+ "description": "Origin of the site requesting the spend limit"
+ },
+ "spendLimitTooLarge": {
+ "message": "æ¶èŽ¹éå¶è¿å€§"
+ },
"stateLogError": {
"message": "æ£çŽ¢ç¶ææ¥å¿æ¶åºéã"
},
+ "stateLogFileName": {
+ "message": "MetaMask ç¶ææ¥å¿"
+ },
"stateLogs": {
"message": "ç¶ææ¥å¿"
},
"stateLogsDescription": {
"message": "ç¶ææ¥å¿å
å«æšç莊æ·å°ååå·²åéç亀æã"
},
+ "statusConnected": {
+ "message": "å·²è¿æ¥"
+ },
+ "statusNotConnected": {
+ "message": "æªè¿æ¥"
+ },
"step1HardwareWallet": {
"message": "1. è¿æ¥ç¡¬ä»¶é±å
"
},
"step1HardwareWalletMsg": {
- "message": "çŽæ¥å°æšç硬件é±å
äžäžªäººçµèçžè¿ã"
+ "message": "å°æšç硬件é±å
çŽæ¥è¿æ¥å°çµèäžã"
},
"step2HardwareWallet": {
"message": "2. éæ©èŽŠæ·"
},
"step2HardwareWalletMsg": {
- "message": "请éæ©æšæ³æ¥çç莊æ·ãæ¯æ¬¡ä»
ééæ©äžäžªã"
+ "message": "请éæ©æšæ³æ¥çç莊æ·ãæ¯æ¬¡åªèœéæ©äžäžªèŽŠæ·ã"
},
"step3HardwareWallet": {
- "message": "3. åŒå§äœéª dApps åæŽå€åèœïŒ"
+ "message": "3. åŒå§äœ¿çš web3 ç«ç¹åæŽå€åèœïŒ"
},
"step3HardwareWalletMsg": {
- "message": "䜿çšæšç硬件é±å
ïŒæäœäžä»¥å€ªå莊æ·å¶äœçžåãç»åœ dAppsïŒåé ETH ïŒèŽä¹°åä¿å ERC20 代åžåéå莚å代åžåŠ CryptoKittiesã"
+ "message": "䜿çšæšç硬件é±å
ïŒæäœäžä»¥å€ªå莊æ·å¶äœçžåãç»åœ dAppsïŒåé ETH ïŒèŽä¹°åä¿å ERC20 代åžåè¯žåŠ CryptoKitties çäžå¯æ¿ä»£ä»£åžã"
},
"storePhrase": {
- "message": "éè¿åŠ 1Password çå¯ç 管家ä¿å该å¯è¯ã"
+ "message": "éè¿åŠ 1Password çå¯ç 管çå·¥å
·ä¿å该莊æ·å©è®°è¯ã"
+ },
+ "submit": {
+ "message": "æ亀"
},
"submitted": {
"message": "å·²æ亀"
@@ -1045,20 +1594,303 @@
"supportCenter": {
"message": "访é®æ们çæ¯æäžå¿"
},
+ "swap": {
+ "message": "å
æ¢ Swap"
+ },
+ "swapAdvancedSlippageInfo": {
+ "message": "åŠæä»·æ Œåšæšäžåå确讀ä¹éŽåçååïŒè¿å°±å«åâæ»ç¹âãåŠææ»ç¹è¶
è¿æšçâæ倧æ»ç¹â讟眮ïŒæšççå
æ¢å°èªåšåæ¶ã"
+ },
+ "swapAggregator": {
+ "message": "èåå"
+ },
+ "swapAmountReceived": {
+ "message": "ä¿è¯æ°é¢"
+ },
+ "swapAmountReceivedInfo": {
+ "message": "è¿æ¯æšå°æ¶å°çæäœæ°é¢ãæ ¹æ®æ»ç¹åŒïŒ æšå¯èœäŒæ¶å°æŽå€ã"
+ },
+ "swapApproval": {
+ "message": "æ¹å $1 çå
æ¢ ",
+ "description": "Used in the transaction display list to describe a transaction that is an approve call on a token that is to be swapped.. $1 is the symbol of a token that has been approved."
+ },
+ "swapApproveNeedMoreTokens": {
+ "message": "æšè¿é $1 $2 æ¥å®æè¿ç¬å
æ¢",
+ "description": "Tells the user how many more of a given token they need for a specific swap. $1 is an amount of tokens and $2 is the token symbol."
+ },
+ "swapBetterQuoteAvailable": {
+ "message": "æäžäžªå¯çšçæŽäŒæ¥ä»·"
+ },
+ "swapBuildQuotePlaceHolderText": {
+ "message": "没æå¹é
ç代åžç¬Šå $1",
+ "description": "Tells the user that a given search string does not match any tokens in our token lists. $1 can be any string of text"
+ },
+ "swapCheckingQuote": {
+ "message": "æ£åšæ£æ¥ $1",
+ "description": "Shown to the user during quote loading. $1 is the name of an aggregator. The message indicates that metamask is currently checking if that aggregator has a trade/quote for their requested swap."
+ },
+ "swapCustom": {
+ "message": "èªå®ä¹"
+ },
+ "swapDecentralizedExchange": {
+ "message": "å»äžå¿å亀ææ"
+ },
+ "swapEditLimit": {
+ "message": "ä¿®æ¹éå¶"
+ },
+ "swapEnableDescription": {
+ "message": "è¿æ¯å¿
é¡»çïŒå¹¶äžå
讞 MetaMask å
æ¢æšç $1ã",
+ "description": "Gives the user info about the required approval transaction for swaps. $1 will be the symbol of a token being approved for swaps."
+ },
+ "swapEstimatedNetworkFee": {
+ "message": "é¢è®¡çœç»æç»èŽ¹"
+ },
+ "swapEstimatedNetworkFeeSummary": {
+ "message": "â$1âæ¯æ们é¢è®¡çå®é
产ç莹çšãå
·äœæ°é¢è§çœç»æ
åµèå®ã",
+ "description": "$1 will be the translation of swapEstimatedNetworkFee, with the font bolded"
+ },
+ "swapEstimatedNetworkFees": {
+ "message": "é¢è®¡çœç»æç»èŽ¹"
+ },
+ "swapEstimatedNetworkFeesInfo": {
+ "message": "è¿æ¯é¢äŒ°ççšäºå®ææšçå
æ¢æ䜿çšççœç»æç»èŽ¹ãå®é
æ°é¢å¯èœäŒæ ¹æ®çœç»æ¡ä»¶èååã"
+ },
+ "swapFailedErrorDescription": {
+ "message": "æšçèµéæ¯å®å
šçïŒä»ç¶å¯ä»¥åšæšçé±å
äžäœ¿çšã"
+ },
+ "swapFailedErrorTitle": {
+ "message": "å
æ¢å€±èŽ¥"
+ },
+ "swapFetchingQuotesErrorDescription": {
+ "message": "åâŠâŠåºéäºãåè¯äžæ¬¡ïŒåŠæé误ä»ååšïŒè¯·è系客æ·æ¯æã"
+ },
+ "swapFetchingQuotesErrorTitle": {
+ "message": "è·åæ¥ä»·åºé"
+ },
+ "swapFetchingTokens": {
+ "message": "è·å代åžäžâŠâŠ"
+ },
+ "swapFinalizing": {
+ "message": "ç¡®å®äžâŠâŠ"
+ },
+ "swapHighSlippageWarning": {
+ "message": "æ»ç¹æ°éé垞倧ãç¡®ä¿æšç¥éæšçæäœïŒ"
+ },
+ "swapIntroLearnMoreHeader": {
+ "message": "æ³äºè§£æŽå€ä¿¡æ¯ïŒ"
+ },
+ "swapIntroLearnMoreLink": {
+ "message": "äºè§£æŽå€å
³äº MetaMask SwapïŒå
æ¢ïŒ"
+ },
+ "swapIntroLiquiditySourcesLabel": {
+ "message": "æµåšèµéæ¥æºå
æ¬ïŒ"
+ },
+ "swapIntroPopupSubTitle": {
+ "message": "ç°åšæšå¯ä»¥çŽæ¥åš MetaMask é±å
äžå
æ¢ä»£åžãMetaMask SwapsïŒå
æ¢ïŒç»åäºå€äžªå»äžå¿å亀ææèååãäžäžååžåå䞪人 DEXïŒç¡®ä¿ MetaMask çšæ·å§ç»ä»¥æäœççœç»èŽ¹çšè·åŸæäœ³ä»·æ Œã"
+ },
+ "swapIntroPopupTitle": {
+ "message": "代åžå
æ¢æ¥äºïŒ"
+ },
+ "swapLearnMoreContractsAuditReview": {
+ "message": "æ¥çæ们çå®æ¹å纊审计"
+ },
+ "swapLowSlippageError": {
+ "message": "亀æå¯èœå€±èŽ¥ïŒæ倧æ»ç¹è¿äœã"
+ },
+ "swapMaxNetworkFeeInfo": {
+ "message": "â$1âæ¯æšæå€æè¯èŽ¹çæ°éïŒåœçœç»äžçš³å®æ¶ïŒè¿å¯èœæ¯äžäžªå€§çæ°é¢ã",
+ "description": "$1 will be the translation of swapMaxNetworkFees, with the font bolded"
+ },
+ "swapMaxNetworkFees": {
+ "message": "æ倧çœç»æç»èŽ¹"
+ },
+ "swapMaxSlippage": {
+ "message": "æ倧æ»ç¹"
+ },
+ "swapMetaMaskFee": {
+ "message": "MetaMask æç»èŽ¹"
+ },
+ "swapMetaMaskFeeDescription": {
+ "message": "æ们æ¯æ¬¡éœèœä»é¡¶çº§æµåšæ§èµæºäžæŸå°æ奜çä»·æ Œãæ¯æ¬¡æ¥ä»·éœäŒèªåšæ¶å1%çæç»èŽ¹çšïŒä»¥æ¯æ MetaMask çæç»åå±ïŒäœ¿å
¶æŽå å®åã",
+ "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number."
+ },
+ "swapNQuotes": {
+ "message": "$1 䞪æ¥ä»·",
+ "description": "$1 is the number of quotes that the user can select from when opening the list of quotes on the 'view quote' screen"
+ },
+ "swapNetworkFeeSummary": {
+ "message": "çœç»æç»èŽ¹å
æ¬å€çæšçå
æ¢ååšä»¥å€ªåïŒEthereumïŒçœç»äžååšçææ¬ãMetaMask äžä»è¿ç¬èŽ¹çšäžè·å©ã"
+ },
+ "swapNewQuoteIn": {
+ "message": "$1 åæŽæ°æ¥ä»·",
+ "description": "Tells the user the amount of time until the currently displayed quotes are update. $1 is a time that is counting down from 1:00 to 0:00"
+ },
+ "swapOnceTransactionHasProcess": {
+ "message": "äžæŠäº€æå®æïŒæšç $1 å°è¢«æ·»å å°æšç莊æ·äžã",
+ "description": "This message communicates the token that is being transferred. It is shown on the awaiting swap screen. The $1 will be a token symbol."
+ },
+ "swapPriceDifference": {
+ "message": "æšå°å
æ¢ $1 $2ïŒ~$3ïŒäžº $4 $5ïŒ~$6ïŒã",
+ "description": "This message represents the price slippage for the swap. $1 and $4 are a number (ex: 2.89), $2 and $5 are symbols (ex: ETH), and $3 and $6 are fiat currency amounts."
+ },
+ "swapPriceDifferenceTitle": {
+ "message": "ä»·æ Œå·®åŒ ~$1%",
+ "description": "$1 is a number (ex: 1.23) that represents the price difference."
+ },
+ "swapPriceDifferenceTooltip": {
+ "message": "åžåºä»·æ Œçå·®åŒå¯èœåå°äžä»æºææ¶åç莹çšãåžåºè§æš¡ã亀æè§æš¡æåžåºæçäœäžç圱åã"
+ },
+ "swapPriceDifferenceUnavailable": {
+ "message": "åžåºä»·æ Œäžå¯çšã 请确讀æšå¯¹éåçæ°é¢æå°æ»¡æåå继ç»ã"
+ },
+ "swapProcessing": {
+ "message": "å€çäž"
+ },
+ "swapQuoteDetails": {
+ "message": "æ¥ä»·è¯Šæ
"
+ },
+ "swapQuoteDetailsSlippageInfo": {
+ "message": "åŠæåšæšäžè®¢åå确讀订åä¹éŽçä»·æ ŒåçäºååïŒè¿å°±å«å\"æ»ç¹\"ãåŠææ»ç¹è¶
è¿æšç\"æ倧æ»ç¹\"讟眮ïŒæšçå
æ¢å°èªåšåæ¶ã"
+ },
+ "swapQuoteIncludesRate": {
+ "message": "æ¥ä»·å
å« $1% MetaMask æç»èŽ¹",
+ "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number."
+ },
+ "swapQuoteNofN": {
+ "message": "æ¥ä»· $1 / $2",
+ "description": "A count of loaded quotes shown to the user while they are waiting for quotes to be fetched. $1 is the number of quotes already loaded, and $2 is the total number of quotes to load."
+ },
+ "swapQuoteSource": {
+ "message": "æ¥ä»·æ¥æº"
+ },
+ "swapQuotesAreRefreshed": {
+ "message": "æ¥ä»·äŒç»åžžå·æ°ïŒä»¥åæ åœåçåžåºç¶åµã"
+ },
+ "swapQuotesExpiredErrorDescription": {
+ "message": "请请æ±æ°çæ¥ä»·ïŒä»¥è·åŸææ°çä»·æ Œã"
+ },
+ "swapQuotesExpiredErrorTitle": {
+ "message": "æ¥ä»·è¶
æ¶"
+ },
+ "swapQuotesNotAvailableErrorDescription": {
+ "message": "å°è¯è°æŽæ»ç¹æ°é讟眮ïŒå¹¶åè¯äžæ¬¡ã"
+ },
+ "swapQuotesNotAvailableErrorTitle": {
+ "message": "æ å¯çšæ¥ä»·"
+ },
+ "swapRate": {
+ "message": "莹ç"
+ },
+ "swapReceiving": {
+ "message": "æ¥æ¶"
+ },
+ "swapReceivingInfoTooltip": {
+ "message": "è¿æ¯äžäžªé¢äŒ°æ°é¢ãç¡®åçæ°é¢åå³äºæ»ç¹ã"
+ },
+ "swapRequestForQuotation": {
+ "message": "请æ±æ¥ä»·"
+ },
+ "swapSearchForAToken": {
+ "message": "æ玢代åž"
+ },
+ "swapSelect": {
+ "message": "éæ©"
+ },
+ "swapSelectAQuote": {
+ "message": "éæ©äžäžªæ¥ä»·"
+ },
+ "swapSelectAToken": {
+ "message": "éæ©äžäžªä»£åž"
+ },
+ "swapSelectQuotePopoverDescription": {
+ "message": "以äžæ¯ä»å€äžªæµåšèµéæ¥æºæ¶éå°çæææ¥ä»·ã"
+ },
+ "swapSlippageTooLow": {
+ "message": "æ»ç¹å¿
须倧äºé¶"
+ },
+ "swapSource": {
+ "message": "æµåšèµéæ¥æº"
+ },
+ "swapSourceInfo": {
+ "message": "æ们æ玢å€äžªæµåšæ§æ¥æºïŒäº€ææãèåååäžäžååžåïŒïŒä»¥æŸå°æ奜çå©çåæäœççœç»æç»èŽ¹ã"
+ },
+ "swapStartSwapping": {
+ "message": "åŒå§å
æ¢"
+ },
+ "swapSwapFrom": {
+ "message": "å
æ¢èª"
+ },
+ "swapSwapSwitch": {
+ "message": "åæ¢å
æ¢ä»£åžæ¹å"
+ },
+ "swapSwapTo": {
+ "message": "å
æ¢å°"
+ },
+ "swapThisWillAllowApprove": {
+ "message": "è¿æ ·å°å
讞 $1 çšäºå
æ¢ã"
+ },
+ "swapTokenAvailable": {
+ "message": "æšç $1 已添å å°æšç莊æ·ã",
+ "description": "This message is shown after a swap is successful and communicates the exact amount of tokens the user has received for a swap. The $1 is a decimal number of tokens followed by the token symbol."
+ },
+ "swapTokenToToken": {
+ "message": "å
æ¢ $1 å° $2",
+ "description": "Used in the transaction display list to describe a swap. $1 and $2 are the symbols of tokens in involved in a swap."
+ },
+ "swapTransactionComplete": {
+ "message": "亀æå®æ"
+ },
+ "swapUnknown": {
+ "message": "æªç¥ç"
+ },
+ "swapUsingBestQuote": {
+ "message": "䜿çšæ奜çæ¥ä»·"
+ },
+ "swapVerifyTokenExplanation": {
+ "message": "å€äžªä»£åžå¯ä»¥äœ¿çšçžåçå称å笊å·ãæ£æ¥ EtherscanïŒä»¥å€ªåæµè§åšïŒä»¥ç¡®è®€è¿æ¯æšæ£åšå¯»æŸç代åžã"
+ },
+ "swapViewToken": {
+ "message": "æ¥ç $1"
+ },
+ "swapYourTokenBalance": {
+ "message": "$1 $2 å¯çš",
+ "description": "Tells the user how much of a token they have in their balance. $1 is a decimal number amount of tokens, and $2 is a token symbol"
+ },
+ "swapZeroSlippage": {
+ "message": "0% æ»ç¹"
+ },
+ "swapsAdvancedOptions": {
+ "message": "é«çº§é项"
+ },
+ "swapsExcessiveSlippageWarning": {
+ "message": "æ»ç¹æ°é¢å€ªé«ïŒäŒå¯ŒèŽäžè¯çã请å°æ»ç¹è®Ÿçœ®éäœå° 15% 以äžã"
+ },
+ "swapsMaxSlippage": {
+ "message": "æ倧æ»ç¹"
+ },
+ "swapsNotEnoughForTx": {
+ "message": "没æ足å€ç $1 æ¥å®ææ€äº€æ",
+ "description": "Tells the user that they don't have enough of a token for a proposed swap. $1 is a token symbol"
+ },
+ "swapsViewInActivity": {
+ "message": "åšæŽ»åšäžæ¥ç"
+ },
"switchNetworks": {
"message": "åæ¢çœç»"
},
+ "switchToThisAccount": {
+ "message": "åæ¢å°è¯¥èŽŠæ·"
+ },
"symbol": {
"message": "笊å·"
},
"symbolBetweenZeroTwelve": {
- "message": "笊å·äžåŸè¶
è¿11䞪å笊ã"
+ "message": "笊å·äžåŸè¶
è¿ 11 䞪å笊ã"
},
"syncWithMobile": {
- "message": "䜿çšç§»åšè®Ÿå€è¿è¡åæ¥"
+ "message": "䜿çšç§»åšè®Ÿå€åæ¥"
},
"syncWithMobileBeCareful": {
- "message": "æ«æçŒç æ¶ïŒè¯·ç¡®ä¿èº«èŸ¹æ å
¶ä»äººæ£åšæ¥çæšçæŸç€ºé¡µé¢"
+ "message": "æ«æè¿äžªä»£ç æ¶ïŒè¯·ç¡®ä¿éè¿æ²¡æå
¶ä»äººåšçæšçå±å¹ã"
},
"syncWithMobileComplete": {
"message": "æšçæ°æ®å·²åæ¥æåãå°œæ
äœéª MetaMask åºçšçšåºïŒ"
@@ -1070,134 +1902,183 @@
"message": "åŠææšæ¯éŠæ¬¡å¯çš MetaMask 移åšåºçšçšåºïŒè¯·éè¿äžªäººææºå®æåŠäžæäœã"
},
"syncWithMobileScanThisCode": {
- "message": "äœ¿çš MetaMask åºçšçšåºæ«æçŒç "
+ "message": "äœ¿çš MetaMask åºçšçšåºæ«æ代ç "
},
"syncWithMobileTitle": {
"message": "䜿çšç§»åšè®Ÿå€è¿è¡åæ¥"
},
+ "syncWithThreeBox": {
+ "message": "äœ¿çš 3Box åæ¥æ°æ®ïŒå®éªåèœïŒ"
+ },
+ "syncWithThreeBoxDescription": {
+ "message": "åŒå¯åå¯ä»¥çš 3Box å€ä»œæšç讟眮ãæ€åèœç®åæ¯å®éªåèœïŒäœ¿çšæ¶é£é©èªèŽã"
+ },
+ "syncWithThreeBoxDisabled": {
+ "message": "ç±äºåå§åæ¥è¿çšäžåºç°é误ïŒ3Box 已被çŠçšã"
+ },
"terms": {
"message": "䜿çšæ¡æ¬Ÿ"
},
+ "termsOfService": {
+ "message": "æå¡æ¡æ¬Ÿ"
+ },
"testFaucet": {
"message": "æµè¯æ°Žç®¡"
},
"thisWillCreate": {
- "message": "该æäœå°äžºæšå建æ°é±å
åç§åå¯è¯"
+ "message": "å°äžºæšå建æ°çé±å
莊æ·å莊æ·å©è®°è¯"
},
"tips": {
- "message": "èµé"
+ "message": "å°èŽŽå£«"
},
"to": {
"message": "è³"
},
+ "toAddress": {
+ "message": "è³ïŒ$1",
+ "description": "$1 is the address to include in the To label. It is typically shortened first using shortenAddress"
+ },
+ "toWithColon": {
+ "message": "è³ïŒ"
+ },
"token": {
"message": "代åž"
},
"tokenAlreadyAdded": {
- "message": "代åžå·²ç»è¢«æ·»å ."
+ "message": "代åžå·²æ·»å ã"
},
"tokenContractAddress": {
"message": "代åžå纊å°å"
},
+ "tokenOptions": {
+ "message": "代åžé项"
+ },
"tokenSymbol": {
"message": "代åžç¬Šå·"
},
"total": {
- "message": "æ»é"
+ "message": "æ»é¢"
},
"transaction": {
"message": "亀æ"
},
"transactionCancelAttempted": {
- "message": "åš $2 å°è¯åæ¶äº€æïŒå
¶ Gas 莹䞺 $1"
+ "message": "å°è¯åæ¶äº€æ $2ïŒçæ莹çšïŒ$1ã"
},
"transactionCancelSuccess": {
- "message": "æååš $2 åæ¶äº€æå"
+ "message": "åæ¶äº€ææå $2ã"
},
"transactionConfirmed": {
- "message": "亀æå·²éè¿ $2 确讀ã"
+ "message": "亀æ已确讀 $2ã"
},
"transactionCreated": {
- "message": "åš $2 çæç亀æåïŒå
¶äº€æé¢äžº $1 ã"
+ "message": "亀æå·²å建 $2ïŒäº€ææ°é¢ïŒ$1ã"
},
"transactionDropped": {
- "message": "åš $2 ç»æ¢ç亀æåã"
+ "message": "亀æç»æ¢ $2ã"
},
"transactionError": {
- "message": "亀æåºé. å纊代ç æ§è¡åŒåžž."
+ "message": "亀æåºéãå纊代ç æ§è¡åŒåžžã"
},
"transactionErrorNoContract": {
- "message": "æ£åšå°è¯è°çšéè系人å°ååèœã"
+ "message": "è¯åŸåšäžäžªéå纊å°åäžè°çšäžäžªåœæ°ã"
},
"transactionErrored": {
- "message": "亀ææ¥éã"
+ "message": "亀æåºç°é误ã"
},
"transactionFee": {
"message": "亀æ莹"
},
"transactionResubmitted": {
- "message": "åš $2 éæ°æ亀ç亀æåïŒå
¶ Gas 莹çšå¢å è³ $1"
+ "message": "éæ°æ亀亀æ $2ïŒäº€æ莹åè³ïŒ$1ã"
},
"transactionSubmitted": {
- "message": "åš $2 æ亀ç亀æåïŒå
¶ Gas 莹çšäžº $1 ã"
+ "message": "亀æå·²æ亀 $2ïŒäº€æ莹ïŒ$1ã"
},
"transactionUpdated": {
- "message": "亀æåå·²äº $2 æŽæ°ã"
+ "message": "亀ææŽæ°æ¶éŽ $2ã"
},
"transfer": {
"message": "蜬莊"
},
"transferBetweenAccounts": {
- "message": "åšäžªäººèŽŠæ·éŽèœ¬èŽŠ"
+ "message": "åšæç莊æ·éŽèœ¬èŽŠ"
},
"transferFrom": {
- "message": "蜬åº"
+ "message": "蜬èª"
+ },
+ "troubleConnectingToWallet": {
+ "message": "æ们åšè¿æ¥æšç $1 éå°é®é¢ïŒå°è¯æ£æ¥ $2 并éè¯ã",
+ "description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
},
"troubleTokenBalances": {
- "message": "æ们æ æ³å 蜜æšç代åžäœé¢ãäœ å¯ä»¥æ¥çå®ä»¬",
+ "message": "æ们æ æ³å 蜜æšç代åžäœé¢ãæšå¯ä»¥æ¥çå®ä»¬",
"description": "Followed by a link (here) to view token balances"
},
+ "trustSiteApprovePermission": {
+ "message": "æšä¿¡ä»»è¿äžªçœç«åïŒææå³è¡šç€ºæšå
讞 $1 æåæšç $2ïŒå¹¶äžºæšèªåšè¿è¡äº€æã",
+ "description": "$1 is the url requesting permission and $2 is the symbol of the currency that the request is for"
+ },
"tryAgain": {
"message": "éè¯"
},
"typePassword": {
- "message": "èŸå
¥äœ çå¯ç "
+ "message": "èŸå
¥æšç MetaMask å¯ç "
},
"unapproved": {
"message": "æªæ¹å"
},
"units": {
- "message": "åäœ"
+ "message": "æ°é"
},
"unknown": {
"message": "æªç¥"
},
"unknownCameraError": {
- "message": "å°è¯è·åçžæºäœ¿çšæéæ¶æ¥éã请éè¯âŠ"
+ "message": "å°è¯è·åçžæºäœ¿çšæéæ¶æ¥éã请éè¯âŠâŠ"
},
"unknownCameraErrorTitle": {
- "message": "ååïŒåºé®é¢äºâŠ"
+ "message": "ååïŒåºé®é¢äºâŠâŠ"
},
"unknownNetwork": {
- "message": "æªç¥ç§æçœç»"
+ "message": "æªç¥çç§æçœç»"
},
"unknownQrCode": {
- "message": "é误ïŒæ们æ æ³è¯å«è¯¥äºç»Žç "
+ "message": "é误ïŒæ æ³è¯å«è¯¥äºç»Žç "
+ },
+ "unlimited": {
+ "message": "æ éå¶"
},
"unlock": {
"message": "解é"
},
"unlockMessage": {
- "message": "åæ£çœç»åŸ
åœäž"
+ "message": "å³å°è¿å
¥å»äžå¿åçœç»"
},
"updatedWithDate": {
"message": "å·²æŽæ° $1"
},
+ "urlErrorMsg": {
+ "message": "URL éèŠçžåºç HTTP/HTTPS åçŒã"
+ },
+ "urlExistsErrorMsg": {
+ "message": "URL å·²ç»ååšäºç°æççœç»åè¡šäž"
+ },
+ "usePhishingDetection": {
+ "message": "䜿çšçœç»é鱌æ£æµ"
+ },
+ "usePhishingDetectionDescription": {
+ "message": "æŸç€ºé对 Ethereum çšæ·é鱌ååçèŠåã"
+ },
"usedByClients": {
"message": "å¯çšäºåç§äžåç客æ·ç«¯"
},
"userName": {
- "message": "çšæ·å"
+ "message": "å称"
+ },
+ "verifyThisTokenOn": {
+ "message": "åš $1 äžéªè¯æ€ä»£åž",
+ "description": "Points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\""
},
"viewAccount": {
"message": "æ¥ç莊æ·"
@@ -1209,39 +2090,53 @@
"message": "åš $1 æ¥ç"
},
"viewOnEtherscan": {
- "message": "åš Etherscan äžæ¥ç"
+ "message": "åš EtherscanïŒä»¥å€ªåæµè§åšïŒäžæ¥ç"
},
"viewinExplorer": {
- "message": "åšç®¡çåšäžæ¥ç"
+ "message": "åšæµè§åšäžæ¥ç"
},
"visitWebSite": {
"message": "访é®æ们ççœç«"
},
+ "walletConnectionGuide": {
+ "message": "æ们ç硬件é±å
è¿æ¥æå"
+ },
"walletSeed": {
- "message": "é±å
å©è®°è¯"
+ "message": "莊æ·å©è®°è¯"
+ },
+ "web3ShimUsageNotification": {
+ "message": "æ们åç°åœåççœç«å°è¯äœ¿çšå·²ç»å é€ç window.web3 APIãåŠæè¿äžªçœç«çœç«å·²ç»æ æ³æ£åžžäœ¿çšïŒè¯·ç¹å» $1 è·åæŽå€ä¿¡æ¯ã",
+ "description": "$1 is a clickable link."
},
"welcome": {
- "message": "欢è¿äœ¿çš MetaMask æµè¯ç"
+ "message": "欢è¿äœ¿çš MetaMask"
},
"welcomeBack": {
"message": "欢è¿åæ¥ïŒ"
},
+ "whatsThis": {
+ "message": "è¿æ¯ä»ä¹ïŒ"
+ },
"writePhrase": {
- "message": "请å°è¯¥å¯è¯è®°åœåšçºžäžïŒå¹¶ä¿ååšå®å
šçå°æ¹ãåŠæåžææåä¿¡æ¯å®å
šæ§ïŒè¯·å°ä¿¡æ¯è®°åœåšå€åŒ 纞äžïŒå¹¶åå«ä¿ååš 2 - 3 䞪äžåçå°æ¹ã"
+ "message": "请å°è¯¥èŽŠæ·å©è®°è¯è®°åœåšçºžäžïŒå¹¶ä¿ååšå®å
šçå°æ¹ãåŠæåžææåä¿¡æ¯å®å
šæ§ïŒè¯·å°ä¿¡æ¯è®°åœåšå€åŒ 纞äžïŒå¹¶åå«ä¿ååš 2 - 3 䞪äžåçå°æ¹ã"
+ },
+ "xOfY": {
+ "message": "$1 / $2",
+ "description": "$1 and $2 are intended to be two numbers, where $2 is a total, and $1 is a count towards that total"
},
"yesLetsTry": {
- "message": "没éãäžåŠšäžè¯"
+ "message": "æ¯çïŒå°è¯äž"
},
"youNeedToAllowCameraAccess": {
- "message": "æšéèŠåŒå¯çžæºè®¿é®æéïŒæèœäœ¿çšè¯¥åèœã"
+ "message": "éèŠåŒå¯çžæºè®¿é®æéïŒæèœäœ¿çšè¯¥åèœã"
},
"youSign": {
"message": "æ£åšçŸå"
},
"yourPrivateSeedPhrase": {
- "message": "äœ çç§æå©è®°è¯"
+ "message": "æšç莊æ·å©è®°è¯"
},
"zeroGasPriceOnSpeedUpError": {
- "message": "Gas ä»·æ Œå éäžæ¶š"
+ "message": "å éæ¶æ çæä»·æ Œ"
}
}
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 55a8f5a63..ca7c04951 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -32,7 +32,9 @@ import LocalStore from './lib/local-store';
import ReadOnlyNetworkStore from './lib/network-store';
import createStreamSink from './lib/createStreamSink';
import NotificationManager from './lib/notification-manager';
-import MetamaskController from './metamask-controller';
+import MetamaskController, {
+ METAMASK_CONTROLLER_EVENTS,
+} from './metamask-controller';
import rawFirstTimeState from './first-time-state';
import getFirstPreferredLangCode from './lib/get-first-preferred-lang-code';
import getObjStructure from './lib/getObjStructure';
@@ -396,14 +398,35 @@ function setupController(initState, initLangCode) {
//
updateBadge();
- controller.txController.on('update:badge', updateBadge);
- controller.messageManager.on('updateBadge', updateBadge);
- controller.personalMessageManager.on('updateBadge', updateBadge);
- controller.decryptMessageManager.on('updateBadge', updateBadge);
- controller.encryptionPublicKeyManager.on('updateBadge', updateBadge);
- controller.typedMessageManager.on('updateBadge', updateBadge);
+ controller.txController.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
+ controller.messageManager.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
+ controller.personalMessageManager.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
+ controller.decryptMessageManager.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
+ controller.encryptionPublicKeyManager.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
+ controller.typedMessageManager.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
controller.approvalController.subscribe(updateBadge);
- controller.appStateController.on('updateBadge', updateBadge);
+ controller.appStateController.on(
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ updateBadge,
+ );
/**
* Updates the Web Extension's "badge" number, on the little fox in the toolbar.
diff --git a/app/scripts/controllers/app-state.js b/app/scripts/controllers/app-state.js
index 0bf791821..73173bf68 100644
--- a/app/scripts/controllers/app-state.js
+++ b/app/scripts/controllers/app-state.js
@@ -1,5 +1,6 @@
import EventEmitter from 'events';
import { ObservableStore } from '@metamask/obs-store';
+import { METAMASK_CONTROLLER_EVENTS } from '../metamask-controller';
export default class AppStateController extends EventEmitter {
/**
@@ -74,7 +75,7 @@ export default class AppStateController extends EventEmitter {
*/
waitForUnlock(resolve, shouldShowUnlockRequest) {
this.waitingForUnlock.push({ resolve });
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
if (shouldShowUnlockRequest) {
this._showUnlockRequest();
}
@@ -88,7 +89,7 @@ export default class AppStateController extends EventEmitter {
while (this.waitingForUnlock.length > 0) {
this.waitingForUnlock.shift().resolve();
}
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
}
}
diff --git a/app/scripts/controllers/incoming-transactions.js b/app/scripts/controllers/incoming-transactions.js
index 481810ec1..471a41872 100644
--- a/app/scripts/controllers/incoming-transactions.js
+++ b/app/scripts/controllers/incoming-transactions.js
@@ -23,6 +23,7 @@ import {
ROPSTEN,
ROPSTEN_CHAIN_ID,
} from '../../../shared/constants/network';
+import { NETWORK_EVENTS } from './network';
const fetchWithTimeout = getFetchWithTimeout(30000);
@@ -111,7 +112,7 @@ export default class IncomingTransactionsController {
}),
);
- this.networkController.on('networkDidChange', async () => {
+ this.networkController.on(NETWORK_EVENTS.NETWORK_DID_CHANGE, async () => {
const address = this.preferencesController.getSelectedAddress();
await this._update({
address,
diff --git a/app/scripts/controllers/network/index.js b/app/scripts/controllers/network/index.js
index a0a43faa5..fa027c5ab 100644
--- a/app/scripts/controllers/network/index.js
+++ b/app/scripts/controllers/network/index.js
@@ -1 +1 @@
-export { default } from './network';
+export { default, NETWORK_EVENTS } from './network';
diff --git a/app/scripts/controllers/network/network.js b/app/scripts/controllers/network/network.js
index 605b0063a..7315e060d 100644
--- a/app/scripts/controllers/network/network.js
+++ b/app/scripts/controllers/network/network.js
@@ -47,6 +47,13 @@ const defaultProviderConfig = {
...defaultProviderConfigOpts,
};
+export const NETWORK_EVENTS = {
+ // Fired after the actively selected network is changed
+ NETWORK_DID_CHANGE: 'networkDidChange',
+ // Fired when the actively selected network *will* change
+ NETWORK_WILL_CHANGE: 'networkWillChange',
+};
+
export default class NetworkController extends EventEmitter {
constructor(opts = {}) {
super();
@@ -73,7 +80,7 @@ export default class NetworkController extends EventEmitter {
this._providerProxy = null;
this._blockTrackerProxy = null;
- this.on('networkDidChange', this.lookupNetwork);
+ this.on(NETWORK_EVENTS.NETWORK_DID_CHANGE, this.lookupNetwork);
}
/**
@@ -229,9 +236,10 @@ export default class NetworkController extends EventEmitter {
//
_switchNetwork(opts) {
+ this.emit(NETWORK_EVENTS.NETWORK_WILL_CHANGE);
this.setNetworkState('loading');
this._configureProvider(opts);
- this.emit('networkDidChange', opts.type);
+ this.emit(NETWORK_EVENTS.NETWORK_DID_CHANGE, opts.type);
}
_configureProvider({ type, rpcUrl, chainId }) {
diff --git a/app/scripts/controllers/swaps.js b/app/scripts/controllers/swaps.js
index 992af5578..d82ac305f 100644
--- a/app/scripts/controllers/swaps.js
+++ b/app/scripts/controllers/swaps.js
@@ -19,6 +19,7 @@ import {
fetchSwapsFeatureLiveness as defaultFetchSwapsFeatureLiveness,
fetchSwapsQuoteRefreshTime as defaultFetchSwapsQuoteRefreshTime,
} from '../../../ui/app/pages/swaps/swaps.util';
+import { NETWORK_EVENTS } from './network';
const METASWAP_ADDRESS = '0x881d40237659c251811cec9c364ef91dc08d300c';
@@ -103,7 +104,7 @@ export default class SwapsController {
this.ethersProvider = new ethers.providers.Web3Provider(provider);
this._currentNetwork = networkController.store.getState().network;
- networkController.on('networkDidChange', (network) => {
+ networkController.on(NETWORK_EVENTS.NETWORK_DID_CHANGE, (network) => {
if (network !== 'loading' && network !== this._currentNetwork) {
this._currentNetwork = network;
this.ethersProvider = new ethers.providers.Web3Provider(provider);
diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js
index 36864c509..093c3badb 100644
--- a/app/scripts/controllers/transactions/index.js
+++ b/app/scripts/controllers/transactions/index.js
@@ -23,6 +23,7 @@ import {
TRANSACTION_STATUSES,
TRANSACTION_TYPES,
} from '../../../../shared/constants/transaction';
+import { METAMASK_CONTROLLER_EVENTS } from '../../metamask-controller';
import TransactionStateManager from './tx-state-manager';
import TxGasUtil from './tx-gas-utils';
import PendingTransactionTracker from './pending-tx-tracker';
@@ -113,7 +114,9 @@ export default class TransactionController extends EventEmitter {
),
});
- this.txStateManager.store.subscribe(() => this.emit('update:badge'));
+ this.txStateManager.store.subscribe(() =>
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE),
+ );
this._setupListeners();
// memstore is computed from a few different stores
this._updateMemstore();
diff --git a/app/scripts/controllers/transactions/tx-state-manager.js b/app/scripts/controllers/transactions/tx-state-manager.js
index 492ea4dde..ffa49e2bc 100644
--- a/app/scripts/controllers/transactions/tx-state-manager.js
+++ b/app/scripts/controllers/transactions/tx-state-manager.js
@@ -3,6 +3,7 @@ import { ObservableStore } from '@metamask/obs-store';
import log from 'loglevel';
import createId from '../../lib/random-id';
import { TRANSACTION_STATUSES } from '../../../../shared/constants/transaction';
+import { METAMASK_CONTROLLER_EVENTS } from '../../metamask-controller';
import {
generateHistoryEntry,
replayHistory,
@@ -474,7 +475,7 @@ export default class TransactionStateManager extends EventEmitter {
* @param {TransactionStatuses[keyof TransactionStatuses]} status - the status to set on the txMeta
* @emits tx:status-update - passes txId and status
* @emits ${txMeta.id}:finished - if it is a finished state. Passes the txMeta
- * @emits update:badge
+ * @emits 'updateBadge'
*/
_setTxStatus(txId, status) {
const txMeta = this.getTx(txId);
@@ -497,7 +498,7 @@ export default class TransactionStateManager extends EventEmitter {
) {
this.emit(`${txMeta.id}:finished`, txMeta);
}
- this.emit('update:badge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
} catch (error) {
log.error(error);
}
diff --git a/app/scripts/lib/decrypt-message-manager.js b/app/scripts/lib/decrypt-message-manager.js
index 39f2a0e42..32ae13626 100644
--- a/app/scripts/lib/decrypt-message-manager.js
+++ b/app/scripts/lib/decrypt-message-manager.js
@@ -4,6 +4,7 @@ import ethUtil from 'ethereumjs-util';
import { ethErrors } from 'eth-rpc-errors';
import log from 'loglevel';
import { MESSAGE_TYPE } from '../../../shared/constants/app';
+import { METAMASK_CONTROLLER_EVENTS } from '../metamask-controller';
import { addHexPrefix } from './util';
import createId from './random-id';
@@ -253,6 +254,14 @@ export default class DecryptMessageManager extends EventEmitter {
this._setMsgStatus(msgId, 'errored');
}
+ /**
+ * Clears all unapproved messages from memory.
+ */
+ clearUnapproved() {
+ this.messages = this.messages.filter((msg) => msg.status !== 'unapproved');
+ this._saveMsgList();
+ }
+
/**
* Updates the status of a DecryptMessage in this.messages via a call to this._updateMsg
*
@@ -316,7 +325,7 @@ export default class DecryptMessageManager extends EventEmitter {
unapprovedDecryptMsgs,
unapprovedDecryptMsgCount,
});
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
}
/**
diff --git a/app/scripts/lib/encryption-public-key-manager.js b/app/scripts/lib/encryption-public-key-manager.js
index 6fc213b19..e29723b5b 100644
--- a/app/scripts/lib/encryption-public-key-manager.js
+++ b/app/scripts/lib/encryption-public-key-manager.js
@@ -3,6 +3,7 @@ import { ObservableStore } from '@metamask/obs-store';
import { ethErrors } from 'eth-rpc-errors';
import log from 'loglevel';
import { MESSAGE_TYPE } from '../../../shared/constants/app';
+import { METAMASK_CONTROLLER_EVENTS } from '../metamask-controller';
import createId from './random-id';
/**
@@ -242,6 +243,14 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
this._setMsgStatus(msgId, 'errored');
}
+ /**
+ * Clears all unapproved messages from memory.
+ */
+ clearUnapproved() {
+ this.messages = this.messages.filter((msg) => msg.status !== 'unapproved');
+ this._saveMsgList();
+ }
+
/**
* Updates the status of a EncryptionPublicKey in this.messages via a call to this._updateMsg
*
@@ -303,6 +312,6 @@ export default class EncryptionPublicKeyManager extends EventEmitter {
unapprovedEncryptionPublicKeyMsgs,
unapprovedEncryptionPublicKeyMsgCount,
});
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
}
}
diff --git a/app/scripts/lib/message-manager.js b/app/scripts/lib/message-manager.js
index 796971208..7f4218f8b 100644
--- a/app/scripts/lib/message-manager.js
+++ b/app/scripts/lib/message-manager.js
@@ -3,6 +3,7 @@ import { ObservableStore } from '@metamask/obs-store';
import ethUtil from 'ethereumjs-util';
import { ethErrors } from 'eth-rpc-errors';
import { MESSAGE_TYPE } from '../../../shared/constants/app';
+import { METAMASK_CONTROLLER_EVENTS } from '../metamask-controller';
import createId from './random-id';
/**
@@ -220,6 +221,14 @@ export default class MessageManager extends EventEmitter {
this._setMsgStatus(msgId, 'rejected');
}
+ /**
+ * Clears all unapproved messages from memory.
+ */
+ clearUnapproved() {
+ this.messages = this.messages.filter((msg) => msg.status !== 'unapproved');
+ this._saveMsgList();
+ }
+
/**
* Updates the status of a Message in this.messages via a call to this._updateMsg
*
@@ -272,7 +281,7 @@ export default class MessageManager extends EventEmitter {
const unapprovedMsgs = this.getUnapprovedMsgs();
const unapprovedMsgCount = Object.keys(unapprovedMsgs).length;
this.memStore.updateState({ unapprovedMsgs, unapprovedMsgCount });
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
}
}
diff --git a/app/scripts/lib/personal-message-manager.js b/app/scripts/lib/personal-message-manager.js
index 66474c8c4..1fb59144b 100644
--- a/app/scripts/lib/personal-message-manager.js
+++ b/app/scripts/lib/personal-message-manager.js
@@ -4,6 +4,7 @@ import ethUtil from 'ethereumjs-util';
import { ethErrors } from 'eth-rpc-errors';
import log from 'loglevel';
import { MESSAGE_TYPE } from '../../../shared/constants/app';
+import { METAMASK_CONTROLLER_EVENTS } from '../metamask-controller';
import { addHexPrefix } from './util';
import createId from './random-id';
@@ -241,6 +242,14 @@ export default class PersonalMessageManager extends EventEmitter {
this._setMsgStatus(msgId, 'rejected');
}
+ /**
+ * Clears all unapproved messages from memory.
+ */
+ clearUnapproved() {
+ this.messages = this.messages.filter((msg) => msg.status !== 'unapproved');
+ this._saveMsgList();
+ }
+
/**
* Updates the status of a PersonalMessage in this.messages via a call to this._updateMsg
*
@@ -301,7 +310,7 @@ export default class PersonalMessageManager extends EventEmitter {
unapprovedPersonalMsgs,
unapprovedPersonalMsgCount,
});
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
}
/**
diff --git a/app/scripts/lib/typed-message-manager.js b/app/scripts/lib/typed-message-manager.js
index 630e6029c..d1ea6491b 100644
--- a/app/scripts/lib/typed-message-manager.js
+++ b/app/scripts/lib/typed-message-manager.js
@@ -7,6 +7,7 @@ import { isValidAddress } from 'ethereumjs-util';
import log from 'loglevel';
import jsonschema from 'jsonschema';
import { MESSAGE_TYPE } from '../../../shared/constants/app';
+import { METAMASK_CONTROLLER_EVENTS } from '../metamask-controller';
import createId from './random-id';
/**
@@ -313,6 +314,14 @@ export default class TypedMessageManager extends EventEmitter {
this._setMsgStatus(msgId, 'errored');
}
+ /**
+ * Clears all unapproved messages from memory.
+ */
+ clearUnapproved() {
+ this.messages = this.messages.filter((msg) => msg.status !== 'unapproved');
+ this._saveMsgList();
+ }
+
//
// PRIVATE METHODS
//
@@ -377,6 +386,6 @@ export default class TypedMessageManager extends EventEmitter {
unapprovedTypedMessages,
unapprovedTypedMessagesCount,
});
- this.emit('updateBadge');
+ this.emit(METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE);
}
}
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 2eff30355..93404fd39 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -35,7 +35,7 @@ import createTabIdMiddleware from './lib/createTabIdMiddleware';
import createOnboardingMiddleware from './lib/createOnboardingMiddleware';
import { setupMultiplex } from './lib/stream-utils';
import EnsController from './controllers/ens';
-import NetworkController from './controllers/network';
+import NetworkController, { NETWORK_EVENTS } from './controllers/network';
import PreferencesController from './controllers/preferences';
import AppStateController from './controllers/app-state';
import CachedBalancesController from './controllers/cached-balances';
@@ -61,6 +61,12 @@ import seedPhraseVerifier from './lib/seed-phrase-verifier';
import MetaMetricsController from './controllers/metametrics';
import { segment, segmentLegacy } from './lib/segment';
+export const METAMASK_CONTROLLER_EVENTS = {
+ // Fired after state changes that impact the extension badge (unapproved msg count)
+ // The process of updating the badge happens in app/scripts/background.js.
+ UPDATE_BADGE: 'updateBadge',
+};
+
export default class MetamaskController extends EventEmitter {
/**
* @constructor
@@ -127,7 +133,7 @@ export default class MetamaskController extends EventEmitter {
preferencesStore: this.preferencesController.store,
onNetworkDidChange: this.networkController.on.bind(
this.networkController,
- 'networkDidChange',
+ NETWORK_EVENTS.NETWORK_DID_CHANGE,
),
getNetworkIdentifier: this.networkController.getNetworkIdentifier.bind(
this.networkController,
@@ -214,11 +220,6 @@ export default class MetamaskController extends EventEmitter {
preferencesController: this.preferencesController,
});
- // ensure accountTracker updates balances after network change
- this.networkController.on('networkDidChange', () => {
- this.accountTracker._updateAccounts();
- });
-
const additionalKeyrings = [TrezorKeyring, LedgerBridgeKeyring];
this.keyringController = new KeyringController({
keyringTypes: additionalKeyrings,
@@ -323,7 +324,7 @@ export default class MetamaskController extends EventEmitter {
}
});
- this.networkController.on('networkDidChange', () => {
+ this.networkController.on(NETWORK_EVENTS.NETWORK_DID_CHANGE, () => {
this.setCurrentCurrency(
this.currencyRateController.state.currentCurrency,
(error) => {
@@ -357,6 +358,21 @@ export default class MetamaskController extends EventEmitter {
tokenRatesStore: this.tokenRatesController.store,
});
+ // ensure accountTracker updates balances after network change
+ this.networkController.on(NETWORK_EVENTS.NETWORK_DID_CHANGE, () => {
+ this.accountTracker._updateAccounts();
+ });
+
+ // clear unapproved transactions and messages when the network will change
+ this.networkController.on(NETWORK_EVENTS.NETWORK_WILL_CHANGE, () => {
+ this.txController.txStateManager.clearUnapprovedTxs();
+ this.encryptionPublicKeyManager.clearUnapproved();
+ this.personalMessageManager.clearUnapproved();
+ this.typedMessageManager.clearUnapproved();
+ this.decryptMessageManager.clearUnapproved();
+ this.messageManager.clearUnapproved();
+ });
+
// ensure isClientOpenAndUnlocked is updated when memState updates
this.on('update', (memState) => this._onStateUpdate(memState));
diff --git a/package.json b/package.json
index 08dbb9fb9..4e3fc9343 100644
--- a/package.json
+++ b/package.json
@@ -197,13 +197,13 @@
"@metamask/forwarder": "^1.1.0",
"@metamask/test-dapp": "^4.0.1",
"@sentry/cli": "^1.58.0",
- "@storybook/addon-actions": "^6.1.9",
- "@storybook/addon-backgrounds": "^6.1.9",
- "@storybook/addon-knobs": "^6.1.9",
+ "@storybook/addon-actions": "^6.1.17",
+ "@storybook/addon-backgrounds": "^6.1.17",
+ "@storybook/addon-knobs": "^6.1.17",
"@storybook/addon-toolbars": "^6.1.17",
- "@storybook/core": "^6.1.9",
- "@storybook/react": "^6.1.9",
- "@storybook/storybook-deployer": "^2.8.6",
+ "@storybook/core": "^6.1.17",
+ "@storybook/react": "^6.1.17",
+ "@storybook/storybook-deployer": "^2.8.7",
"@testing-library/react": "^10.4.8",
"@testing-library/react-hooks": "^3.2.1",
"@types/react": "^16.9.53",
@@ -308,6 +308,8 @@
"chromedriver": true,
"geckodriver": true,
"@sentry/cli": true,
+ "electron": true,
+ "sqlite3": true,
"core-js": false,
"core-js-pure": false,
"keccak": false,
@@ -316,10 +318,8 @@
"sha3": false,
"bufferutil": false,
"utf-8-validate": false,
- "electron": false,
"ejs": false,
"sc-uws": false,
- "sqlite3": false,
"leveldown": false,
"ursa-optional": false,
"gc-stats": false,
diff --git a/test/unit/app/controllers/incoming-transactions-test.js b/test/unit/app/controllers/incoming-transactions-test.js
index 86e629609..d0f3d3e3b 100644
--- a/test/unit/app/controllers/incoming-transactions-test.js
+++ b/test/unit/app/controllers/incoming-transactions-test.js
@@ -19,6 +19,7 @@ import {
TRANSACTION_CATEGORIES,
TRANSACTION_STATUSES,
} from '../../../../shared/constants/transaction';
+import { NETWORK_EVENTS } from '../../../../app/scripts/controllers/network';
const IncomingTransactionsController = proxyquire(
'../../../../app/scripts/controllers/incoming-transactions',
@@ -161,7 +162,7 @@ describe('IncomingTransactionsController', function () {
assert(incomingTransactionsController.networkController.on.calledOnce);
assert.equal(
incomingTransactionsController.networkController.on.getCall(0).args[0],
- 'networkDidChange',
+ NETWORK_EVENTS.NETWORK_DID_CHANGE,
);
const networkControllerListenerCallback = incomingTransactionsController.networkController.on.getCall(
0,
diff --git a/test/unit/app/controllers/metametrics-test.js b/test/unit/app/controllers/metametrics-test.js
index 8f2de0c02..839b323c4 100644
--- a/test/unit/app/controllers/metametrics-test.js
+++ b/test/unit/app/controllers/metametrics-test.js
@@ -8,6 +8,7 @@ import {
METAMETRICS_BACKGROUND_PAGE_OBJECT,
} from '../../../../shared/constants/metametrics';
import waitUntilCalled from '../../../lib/wait-until-called';
+import { NETWORK_EVENTS } from '../../../../app/scripts/controllers/network';
const segment = createSegmentMock(2, 10000);
const segmentLegacy = createSegmentMock(2, 10000);
@@ -49,7 +50,7 @@ function getMockNetworkController(
provider = { type: NETWORK },
) {
let networkStore = { chainId, provider };
- const on = sinon.stub().withArgs('networkDidChange');
+ const on = sinon.stub().withArgs(NETWORK_EVENTS.NETWORK_DID_CHANGE);
const updateState = (newState) => {
networkStore = { ...networkStore, ...newState };
on.getCall(0).args[1]();
@@ -99,7 +100,7 @@ function getMetaMetricsController({
),
onNetworkDidChange: networkController.on.bind(
networkController,
- 'networkDidChange',
+ NETWORK_EVENTS.NETWORK_DID_CHANGE,
),
preferencesStore,
version: '0.0.1',
diff --git a/test/unit/app/controllers/swaps-test.js b/test/unit/app/controllers/swaps-test.js
index 5bd1c8529..299f99229 100644
--- a/test/unit/app/controllers/swaps-test.js
+++ b/test/unit/app/controllers/swaps-test.js
@@ -14,6 +14,7 @@ import { createTestProviderTools } from '../../../stub/provider';
import SwapsController, {
utils,
} from '../../../../app/scripts/controllers/swaps';
+import { NETWORK_EVENTS } from '../../../../app/scripts/controllers/network';
const MOCK_FETCH_PARAMS = {
slippage: 3,
@@ -101,7 +102,10 @@ function getMockNetworkController() {
};
},
},
- on: sinon.stub().withArgs('networkDidChange').callsArgAsync(1),
+ on: sinon
+ .stub()
+ .withArgs(NETWORK_EVENTS.NETWORK_DID_CHANGE)
+ .callsArgAsync(1),
};
}
diff --git a/test/unit/app/controllers/transactions/tx-controller-test.js b/test/unit/app/controllers/transactions/tx-controller-test.js
index ca7bfede6..ed84b3bcc 100644
--- a/test/unit/app/controllers/transactions/tx-controller-test.js
+++ b/test/unit/app/controllers/transactions/tx-controller-test.js
@@ -15,6 +15,7 @@ import {
TRANSACTION_STATUSES,
TRANSACTION_TYPES,
} from '../../../../../shared/constants/transaction';
+import { METAMASK_CONTROLLER_EVENTS } from '../../../../../app/scripts/metamask-controller';
const noop = () => true;
const currentNetworkId = '42';
@@ -395,7 +396,10 @@ describe('Transaction Controller', function () {
txParams: {},
};
- const eventNames = ['update:badge', '1:unapproved'];
+ const eventNames = [
+ METAMASK_CONTROLLER_EVENTS.UPDATE_BADGE,
+ '1:unapproved',
+ ];
const listeners = [];
eventNames.forEach((eventName) => {
listeners.push(
diff --git a/ui/app/components/app/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js b/ui/app/components/app/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js
index ac355d656..8dc7c86ab 100644
--- a/ui/app/components/app/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js
+++ b/ui/app/components/app/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js
@@ -19,10 +19,6 @@ const gasActionSpies = {
resetCustomData: sinon.spy(),
};
-const confirmTransactionActionSpies = {
- updateGasAndCalculate: sinon.spy(),
-};
-
const sendActionSpies = {
hideGasButtonGroup: sinon.spy(),
};
@@ -48,7 +44,6 @@ proxyquire('../gas-modal-page-container.container.js', {
},
'../../../../store/actions': actionSpies,
'../../../../ducks/gas/gas.duck': gasActionSpies,
- '../../../../ducks/confirm-transaction/confirm-transaction.duck': confirmTransactionActionSpies,
'../../../../ducks/send/send.duck': sendActionSpies,
});
diff --git a/ui/app/components/app/signature-request/signature-request-header/index.scss b/ui/app/components/app/signature-request/signature-request-header/index.scss
index b4f3b5479..beaa5a92c 100644
--- a/ui/app/components/app/signature-request/signature-request-header/index.scss
+++ b/ui/app/components/app/signature-request/signature-request-header/index.scss
@@ -9,12 +9,11 @@
&--account,
&--network {
flex: 1;
- }
-
- &--account {
display: flex;
align-items: center;
+ }
+ &--account {
.account-list-item {
&__top-row {
display: flex;
diff --git a/ui/app/components/app/signature-request/signature-request.stories.js b/ui/app/components/app/signature-request/signature-request.stories.js
new file mode 100644
index 000000000..fd121cc86
--- /dev/null
+++ b/ui/app/components/app/signature-request/signature-request.stories.js
@@ -0,0 +1,37 @@
+import React from 'react';
+import testData from '../../../../../.storybook/test-data';
+import SignatureRequest from './signature-request.component';
+
+const primaryIdentity = Object.values(testData.metamask.identities)[0];
+
+const containerStyle = {
+ width: '357px',
+};
+
+export default {
+ title: 'Signature Request',
+};
+
+export const FirstLook = () => {
+ return (
+
+
+
+ );
+};
diff --git a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js
index a89eeae36..a59785c7a 100644
--- a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js
+++ b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.js
@@ -1,4 +1,3 @@
-import { addHexPrefix } from '../../../../app/scripts/lib/util';
import {
conversionRateSelector,
currentCurrencySelector,
@@ -24,32 +23,19 @@ import { conversionUtil } from '../../helpers/utils/conversion-util';
const createActionType = (action) => `metamask/confirm-transaction/${action}`;
const UPDATE_TX_DATA = createActionType('UPDATE_TX_DATA');
-const CLEAR_TX_DATA = createActionType('CLEAR_TX_DATA');
const UPDATE_TOKEN_DATA = createActionType('UPDATE_TOKEN_DATA');
-const CLEAR_TOKEN_DATA = createActionType('CLEAR_TOKEN_DATA');
-const UPDATE_METHOD_DATA = createActionType('UPDATE_METHOD_DATA');
-const CLEAR_METHOD_DATA = createActionType('CLEAR_METHOD_DATA');
const CLEAR_CONFIRM_TRANSACTION = createActionType('CLEAR_CONFIRM_TRANSACTION');
const UPDATE_TRANSACTION_AMOUNTS = createActionType(
'UPDATE_TRANSACTION_AMOUNTS',
);
const UPDATE_TRANSACTION_FEES = createActionType('UPDATE_TRANSACTION_FEES');
const UPDATE_TRANSACTION_TOTALS = createActionType('UPDATE_TRANSACTION_TOTALS');
-const UPDATE_TOKEN_PROPS = createActionType('UPDATE_TOKEN_PROPS');
const UPDATE_NONCE = createActionType('UPDATE_NONCE');
-const UPDATE_TO_SMART_CONTRACT = createActionType('UPDATE_TO_SMART_CONTRACT');
-const FETCH_DATA_START = createActionType('FETCH_DATA_START');
-const FETCH_DATA_END = createActionType('FETCH_DATA_END');
// Initial state
const initState = {
txData: {},
tokenData: {},
- methodData: {},
- tokenProps: {
- tokenDecimals: '',
- tokenSymbol: '',
- },
fiatTransactionAmount: '',
fiatTransactionFee: '',
fiatTransactionTotal: '',
@@ -60,8 +46,6 @@ const initState = {
hexTransactionFee: '',
hexTransactionTotal: '',
nonce: '',
- toSmartContract: false,
- fetchingData: false,
};
// Reducer
@@ -74,11 +58,6 @@ export default function reducer(state = initState, action = {}) {
...action.payload,
},
};
- case CLEAR_TX_DATA:
- return {
- ...state,
- txData: {},
- };
case UPDATE_TOKEN_DATA:
return {
...state,
@@ -86,23 +65,6 @@ export default function reducer(state = initState, action = {}) {
...action.payload,
},
};
- case CLEAR_TOKEN_DATA:
- return {
- ...state,
- tokenData: {},
- };
- case UPDATE_METHOD_DATA:
- return {
- ...state,
- methodData: {
- ...action.payload,
- },
- };
- case CLEAR_METHOD_DATA:
- return {
- ...state,
- methodData: {},
- };
case UPDATE_TRANSACTION_AMOUNTS: {
const {
fiatTransactionAmount,
@@ -146,37 +108,11 @@ export default function reducer(state = initState, action = {}) {
hexTransactionTotal: hexTransactionTotal || state.hexTransactionTotal,
};
}
- case UPDATE_TOKEN_PROPS: {
- const { tokenSymbol = '', tokenDecimals = '' } = action.payload;
- return {
- ...state,
- tokenProps: {
- ...state.tokenProps,
- tokenSymbol,
- tokenDecimals,
- },
- };
- }
case UPDATE_NONCE:
return {
...state,
nonce: action.payload,
};
- case UPDATE_TO_SMART_CONTRACT:
- return {
- ...state,
- toSmartContract: action.payload,
- };
- case FETCH_DATA_START:
- return {
- ...state,
- fetchingData: true,
- };
- case FETCH_DATA_END:
- return {
- ...state,
- fetchingData: false,
- };
case CLEAR_CONFIRM_TRANSACTION:
return initState;
default:
@@ -192,12 +128,6 @@ export function updateTxData(txData) {
};
}
-export function clearTxData() {
- return {
- type: CLEAR_TX_DATA,
- };
-}
-
export function updateTokenData(tokenData) {
return {
type: UPDATE_TOKEN_DATA,
@@ -205,25 +135,6 @@ export function updateTokenData(tokenData) {
};
}
-export function clearTokenData() {
- return {
- type: CLEAR_TOKEN_DATA,
- };
-}
-
-export function updateMethodData(methodData) {
- return {
- type: UPDATE_METHOD_DATA,
- payload: methodData,
- };
-}
-
-export function clearMethodData() {
- return {
- type: CLEAR_METHOD_DATA,
- };
-}
-
export function updateTransactionAmounts(amounts) {
return {
type: UPDATE_TRANSACTION_AMOUNTS,
@@ -245,13 +156,6 @@ export function updateTransactionTotals(totals) {
};
}
-export function updateTokenProps(tokenProps) {
- return {
- type: UPDATE_TOKEN_PROPS,
- payload: tokenProps,
- };
-}
-
export function updateNonce(nonce) {
return {
type: UPDATE_NONCE,
@@ -259,37 +163,6 @@ export function updateNonce(nonce) {
};
}
-export function updateToSmartContract(toSmartContract) {
- return {
- type: UPDATE_TO_SMART_CONTRACT,
- payload: toSmartContract,
- };
-}
-
-export function setFetchingData(isFetching) {
- return {
- type: isFetching ? FETCH_DATA_START : FETCH_DATA_END,
- };
-}
-
-export function updateGasAndCalculate({ gasLimit, gasPrice }) {
- return (dispatch, getState) => {
- const {
- confirmTransaction: { txData },
- } = getState();
- const newTxData = {
- ...txData,
- txParams: {
- ...txData.txParams,
- gas: addHexPrefix(gasLimit),
- gasPrice: addHexPrefix(gasPrice),
- },
- };
-
- dispatch(updateTxDataAndCalculate(newTxData));
- };
-}
-
function increaseFromLastGasPrice(txData) {
const {
lastGasPrice,
diff --git a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js
index 6f512a703..e67faa52d 100644
--- a/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js
+++ b/ui/app/ducks/confirm-transaction/confirm-transaction.duck.test.js
@@ -2,21 +2,13 @@ import assert from 'assert';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import sinon from 'sinon';
-import {
- TRANSACTION_CATEGORIES,
- TRANSACTION_STATUSES,
-} from '../../../../shared/constants/transaction';
+import { TRANSACTION_STATUSES } from '../../../../shared/constants/transaction';
import ConfirmTransactionReducer, * as actions from './confirm-transaction.duck';
const initialState = {
txData: {},
tokenData: {},
- methodData: {},
- tokenProps: {
- tokenDecimals: '',
- tokenSymbol: '',
- },
fiatTransactionAmount: '',
fiatTransactionFee: '',
fiatTransactionTotal: '',
@@ -27,28 +19,17 @@ const initialState = {
hexTransactionFee: '',
hexTransactionTotal: '',
nonce: '',
- toSmartContract: false,
- fetchingData: false,
};
const UPDATE_TX_DATA = 'metamask/confirm-transaction/UPDATE_TX_DATA';
-const CLEAR_TX_DATA = 'metamask/confirm-transaction/CLEAR_TX_DATA';
const UPDATE_TOKEN_DATA = 'metamask/confirm-transaction/UPDATE_TOKEN_DATA';
-const CLEAR_TOKEN_DATA = 'metamask/confirm-transaction/CLEAR_TOKEN_DATA';
-const UPDATE_METHOD_DATA = 'metamask/confirm-transaction/UPDATE_METHOD_DATA';
-const CLEAR_METHOD_DATA = 'metamask/confirm-transaction/CLEAR_METHOD_DATA';
const UPDATE_TRANSACTION_AMOUNTS =
'metamask/confirm-transaction/UPDATE_TRANSACTION_AMOUNTS';
const UPDATE_TRANSACTION_FEES =
'metamask/confirm-transaction/UPDATE_TRANSACTION_FEES';
const UPDATE_TRANSACTION_TOTALS =
'metamask/confirm-transaction/UPDATE_TRANSACTION_TOTALS';
-const UPDATE_TOKEN_PROPS = 'metamask/confirm-transaction/UPDATE_TOKEN_PROPS';
const UPDATE_NONCE = 'metamask/confirm-transaction/UPDATE_NONCE';
-const UPDATE_TO_SMART_CONTRACT =
- 'metamask/confirm-transaction/UPDATE_TO_SMART_CONTRACT';
-const FETCH_DATA_START = 'metamask/confirm-transaction/FETCH_DATA_START';
-const FETCH_DATA_END = 'metamask/confirm-transaction/FETCH_DATA_END';
const CLEAR_CONFIRM_TRANSACTION =
'metamask/confirm-transaction/CLEAR_CONFIRM_TRANSACTION';
@@ -61,13 +42,6 @@ describe('Confirm Transaction Duck', function () {
tokenData: {
name: 'abcToken',
},
- methodData: {
- name: TRANSACTION_CATEGORIES.TOKEN_METHOD_APPROVE,
- },
- tokenProps: {
- tokenDecimals: '3',
- tokenSymbol: 'ABC',
- },
fiatTransactionAmount: '469.26',
fiatTransactionFee: '0.01',
fiatTransactionTotal: '1.000021',
@@ -78,8 +52,6 @@ describe('Confirm Transaction Duck', function () {
hexTransactionFee: '0x1319718a5000',
hexTransactionTotal: '',
nonce: '0x0',
- toSmartContract: false,
- fetchingData: false,
};
it('should initialize state', function () {
@@ -117,18 +89,6 @@ describe('Confirm Transaction Duck', function () {
);
});
- it('should clear txData when receiving a CLEAR_TX_DATA action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: CLEAR_TX_DATA,
- }),
- {
- ...mockState,
- txData: {},
- },
- );
- });
-
it('should set tokenData when receiving a UPDATE_TOKEN_DATA action', function () {
assert.deepStrictEqual(
ConfirmTransactionReducer(mockState, {
@@ -147,48 +107,6 @@ describe('Confirm Transaction Duck', function () {
);
});
- it('should clear tokenData when receiving a CLEAR_TOKEN_DATA action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: CLEAR_TOKEN_DATA,
- }),
- {
- ...mockState,
- tokenData: {},
- },
- );
- });
-
- it('should set methodData when receiving a UPDATE_METHOD_DATA action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: UPDATE_METHOD_DATA,
- payload: {
- name: 'transferFrom',
- },
- }),
- {
- ...mockState,
- methodData: {
- ...mockState.methodData,
- name: 'transferFrom',
- },
- },
- );
- });
-
- it('should clear methodData when receiving a CLEAR_METHOD_DATA action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: CLEAR_METHOD_DATA,
- }),
- {
- ...mockState,
- methodData: {},
- },
- );
- });
-
it('should update transaction amounts when receiving an UPDATE_TRANSACTION_AMOUNTS action', function () {
assert.deepStrictEqual(
ConfirmTransactionReducer(mockState, {
@@ -246,25 +164,6 @@ describe('Confirm Transaction Duck', function () {
);
});
- it('should update tokenProps when receiving an UPDATE_TOKEN_PROPS action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: UPDATE_TOKEN_PROPS,
- payload: {
- tokenSymbol: 'DEF',
- tokenDecimals: '1',
- },
- }),
- {
- ...mockState,
- tokenProps: {
- tokenSymbol: 'DEF',
- tokenDecimals: '1',
- },
- },
- );
- });
-
it('should update nonce when receiving an UPDATE_NONCE action', function () {
assert.deepStrictEqual(
ConfirmTransactionReducer(mockState, {
@@ -278,41 +177,6 @@ describe('Confirm Transaction Duck', function () {
);
});
- it('should update nonce when receiving an UPDATE_TO_SMART_CONTRACT action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: UPDATE_TO_SMART_CONTRACT,
- payload: true,
- }),
- {
- ...mockState,
- toSmartContract: true,
- },
- );
- });
-
- it('should set fetchingData to true when receiving a FETCH_DATA_START action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(mockState, {
- type: FETCH_DATA_START,
- }),
- {
- ...mockState,
- fetchingData: true,
- },
- );
- });
-
- it('should set fetchingData to false when receiving a FETCH_DATA_END action', function () {
- assert.deepStrictEqual(
- ConfirmTransactionReducer(
- { fetchingData: true },
- { type: FETCH_DATA_END },
- ),
- { fetchingData: false },
- );
- });
-
it('should clear confirmTransaction when receiving a FETCH_DATA_END action', function () {
assert.deepStrictEqual(
ConfirmTransactionReducer(mockState, {
@@ -334,14 +198,6 @@ describe('Confirm Transaction Duck', function () {
assert.deepStrictEqual(actions.updateTxData(txData), expectedAction);
});
- it('should create an action to clear txData', function () {
- const expectedAction = {
- type: CLEAR_TX_DATA,
- };
-
- assert.deepStrictEqual(actions.clearTxData(), expectedAction);
- });
-
it('should create an action to update tokenData', function () {
const tokenData = { test: 123 };
const expectedAction = {
@@ -355,35 +211,6 @@ describe('Confirm Transaction Duck', function () {
);
});
- it('should create an action to clear tokenData', function () {
- const expectedAction = {
- type: CLEAR_TOKEN_DATA,
- };
-
- assert.deepStrictEqual(actions.clearTokenData(), expectedAction);
- });
-
- it('should create an action to update methodData', function () {
- const methodData = { test: 123 };
- const expectedAction = {
- type: UPDATE_METHOD_DATA,
- payload: methodData,
- };
-
- assert.deepStrictEqual(
- actions.updateMethodData(methodData),
- expectedAction,
- );
- });
-
- it('should create an action to clear methodData', function () {
- const expectedAction = {
- type: CLEAR_METHOD_DATA,
- };
-
- assert.deepStrictEqual(actions.clearMethodData(), expectedAction);
- });
-
it('should create an action to update transaction amounts', function () {
const transactionAmounts = { test: 123 };
const expectedAction = {
@@ -423,22 +250,6 @@ describe('Confirm Transaction Duck', function () {
);
});
- it('should create an action to update tokenProps', function () {
- const tokenProps = {
- tokenDecimals: '1',
- tokenSymbol: 'abc',
- };
- const expectedAction = {
- type: UPDATE_TOKEN_PROPS,
- payload: tokenProps,
- };
-
- assert.deepStrictEqual(
- actions.updateTokenProps(tokenProps),
- expectedAction,
- );
- });
-
it('should create an action to update nonce', function () {
const nonce = '0x1';
const expectedAction = {
@@ -449,22 +260,6 @@ describe('Confirm Transaction Duck', function () {
assert.deepStrictEqual(actions.updateNonce(nonce), expectedAction);
});
- it('should create an action to set fetchingData to true', function () {
- const expectedAction = {
- type: FETCH_DATA_START,
- };
-
- assert.deepStrictEqual(actions.setFetchingData(true), expectedAction);
- });
-
- it('should create an action to set fetchingData to false', function () {
- const expectedAction = {
- type: FETCH_DATA_END,
- };
-
- assert.deepStrictEqual(actions.setFetchingData(false), expectedAction);
- });
-
it('should create an action to clear confirmTransaction', function () {
const expectedAction = {
type: CLEAR_CONFIRM_TRANSACTION,
@@ -489,61 +284,6 @@ describe('Confirm Transaction Duck', function () {
global.eth.getCode.resetHistory();
});
- it('updates txData and gas on an existing transaction in confirmTransaction', function () {
- const mockState = {
- metamask: {
- conversionRate: 468.58,
- currentCurrency: 'usd',
- },
- confirmTransaction: {
- ethTransactionAmount: '1',
- ethTransactionFee: '0.000021',
- ethTransactionTotal: '1.000021',
- fetchingData: false,
- fiatTransactionAmount: '469.26',
- fiatTransactionFee: '0.01',
- fiatTransactionTotal: '469.27',
- hexGasTotal: '0x1319718a5000',
- methodData: {},
- nonce: '',
- tokenData: {},
- tokenProps: {
- tokenDecimals: '',
- tokenSymbol: '',
- },
- txData: {
- history: [],
- id: 2603411941761054,
- loadingDefaults: false,
- metamaskNetworkId: '3',
- origin: 'faucet.metamask.io',
- status: TRANSACTION_STATUSES.UNAPPROVED,
- time: 1530838113716,
- },
- },
- };
-
- const middlewares = [thunk];
- const mockStore = configureMockStore(middlewares);
- const store = mockStore(mockState);
- const expectedActions = [
- 'metamask/confirm-transaction/UPDATE_TX_DATA',
- 'metamask/confirm-transaction/UPDATE_TRANSACTION_AMOUNTS',
- 'metamask/confirm-transaction/UPDATE_TRANSACTION_FEES',
- 'metamask/confirm-transaction/UPDATE_TRANSACTION_TOTALS',
- ];
-
- store.dispatch(
- actions.updateGasAndCalculate({ gasLimit: '0x2', gasPrice: '0x25' }),
- );
-
- const storeActions = store.getActions();
- assert.strictEqual(storeActions.length, expectedActions.length);
- storeActions.forEach((action, index) =>
- assert.strictEqual(action.type, expectedActions[index]),
- );
- });
-
it('updates txData and updates gas values in confirmTransaction', function () {
const txData = {
history: [],
diff --git a/ui/app/helpers/utils/transactions.util.js b/ui/app/helpers/utils/transactions.util.js
index 61f2e1f8c..463ddab5e 100644
--- a/ui/app/helpers/utils/transactions.util.js
+++ b/ui/app/helpers/utils/transactions.util.js
@@ -205,3 +205,45 @@ export function getBlockExplorerUrlForTx(networkId, hash, rpcPrefs = {}) {
const prefix = getEtherscanNetworkPrefix(networkId);
return `https://${prefix}etherscan.io/tx/${hash}`;
}
+
+/**
+ * Returns a title for the given transaction category.
+ *
+ * This will throw an error if the transaction category is unrecognized and no default is provided.
+ * @param {function} t - The translation function
+ * @param {TRANSACTION_CATEGORIES[keyof TRANSACTION_CATEGORIES]} transactionCategory - The transaction category constant
+ * @returns {string} The transaction category title
+ */
+export function getTransactionCategoryTitle(t, transactionCategory) {
+ switch (transactionCategory) {
+ case TRANSACTION_CATEGORIES.TOKEN_METHOD_TRANSFER: {
+ return t('transfer');
+ }
+ case TRANSACTION_CATEGORIES.TOKEN_METHOD_TRANSFER_FROM: {
+ return t('transferFrom');
+ }
+ case TRANSACTION_CATEGORIES.TOKEN_METHOD_APPROVE: {
+ return t('approve');
+ }
+ case TRANSACTION_CATEGORIES.SENT_ETHER: {
+ return t('sentEther');
+ }
+ case TRANSACTION_CATEGORIES.CONTRACT_INTERACTION: {
+ return t('contractInteraction');
+ }
+ case TRANSACTION_CATEGORIES.DEPLOY_CONTRACT: {
+ return t('contractDeployment');
+ }
+ case TRANSACTION_CATEGORIES.SWAP: {
+ return t('swap');
+ }
+ case TRANSACTION_CATEGORIES.SWAP_APPROVAL: {
+ return t('swapApproval');
+ }
+ default: {
+ throw new Error(
+ `Unrecognized transaction category: ${transactionCategory}`,
+ );
+ }
+ }
+}
diff --git a/ui/app/hooks/useTransactionDisplayData.js b/ui/app/hooks/useTransactionDisplayData.js
index ff0b7b6c9..18b0e7c39 100644
--- a/ui/app/hooks/useTransactionDisplayData.js
+++ b/ui/app/hooks/useTransactionDisplayData.js
@@ -1,6 +1,9 @@
import { useSelector } from 'react-redux';
import { getKnownMethodData } from '../selectors/selectors';
-import { getStatusKey } from '../helpers/utils/transactions.util';
+import {
+ getStatusKey,
+ getTransactionCategoryTitle,
+} from '../helpers/utils/transactions.util';
import { camelCaseToCapitalize } from '../helpers/utils/common.util';
import { PRIMARY, SECONDARY } from '../helpers/constants/common';
import { getTokenAddressParam } from '../helpers/utils/token-util';
@@ -186,9 +189,13 @@ export function useTransactionDisplayData(transactionGroup) {
transactionCategory === TRANSACTION_CATEGORIES.CONTRACT_INTERACTION
) {
category = TRANSACTION_GROUP_CATEGORIES.INTERACTION;
+ const transactionCategoryTitle = getTransactionCategoryTitle(
+ t,
+ transactionCategory,
+ );
title =
(methodData?.name && camelCaseToCapitalize(methodData.name)) ||
- t(transactionCategory);
+ transactionCategoryTitle;
subtitle = origin;
subtitleContainsOrigin = true;
} else if (transactionCategory === TRANSACTION_CATEGORIES.INCOMING) {
diff --git a/ui/app/pages/confirm-transaction-base/confirm-transaction-base.component.js b/ui/app/pages/confirm-transaction-base/confirm-transaction-base.component.js
index 5d09b3198..d1b702df9 100644
--- a/ui/app/pages/confirm-transaction-base/confirm-transaction-base.component.js
+++ b/ui/app/pages/confirm-transaction-base/confirm-transaction-base.component.js
@@ -22,6 +22,7 @@ import {
TRANSACTION_CATEGORIES,
TRANSACTION_STATUSES,
} from '../../../../shared/constants/transaction';
+import { getTransactionCategoryTitle } from '../../helpers/utils/transactions.util';
export default class ConfirmTransactionBase extends Component {
static contextTypes = {
@@ -690,7 +691,7 @@ export default class ConfirmTransactionBase extends Component {
let functionType = getMethodName(name);
if (!functionType) {
if (transactionCategory) {
- functionType = t(transactionCategory) || transactionCategory;
+ functionType = getTransactionCategoryTitle(t, transactionCategory);
} else {
functionType = t('contractInteraction');
}
diff --git a/yarn.lock b/yarn.lock
index efcfa3599..d57a079e9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2243,7 +2243,7 @@
schema-utils "^2.6.5"
source-map "^0.7.3"
-"@popperjs/core@^2.4.0", "@popperjs/core@^2.4.4", "@popperjs/core@^2.5.4":
+"@popperjs/core@^2.4.0", "@popperjs/core@^2.5.4":
version "2.5.4"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.4.tgz#de25b5da9f727985a3757fd59b5d028aba75841a"
integrity sha512-ZpKr+WTb8zsajqgDkvCEWgp6d5eJT6Q63Ng2neTbzBO76Lbe91vX/iVIW9dikq+Fs3yEo+ls4cxeXABD2LtcbQ==
@@ -2406,17 +2406,17 @@
resolved "https://registry.yarnpkg.com/@stablelib/utf8/-/utf8-0.10.1.tgz#eecf54884da7b2bee235e3c70efb8cd5c07ba5bd"
integrity sha512-+uM1YZ4MhBC82vt99prF7DXNGqhYmJ9cQ3p5qNowMNkkzn9OWEkqBvguBW3ChAt7JvqZ3SD5HJOfc6YgnfMTHw==
-"@storybook/addon-actions@^6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.9.tgz#b6d185b8e4e73691acc428b59e4d331195d64a40"
- integrity sha512-vYqwuaBHrjRbbuyf4WBc5uDhrSejVEEiCabuu4g00R3dN7P5Ne/tbSw9EkYbbrRKxlEhdkk83DU1/J/+mCY5jw==
- dependencies:
- "@storybook/addons" "6.1.9"
- "@storybook/api" "6.1.9"
- "@storybook/client-api" "6.1.9"
- "@storybook/components" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/theming" "6.1.9"
+"@storybook/addon-actions@^6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.1.17.tgz#9d32336284738cefa69b99acafa4b132d5533600"
+ integrity sha512-4hyAvmjnI4C1ZQ7/t21jKKXE0jO1zAk310BkYin0NJf77Qi0tUE1DNOwirJY/xzRih36wWi1V79c/ZOJNsLv9Q==
+ dependencies:
+ "@storybook/addons" "6.1.17"
+ "@storybook/api" "6.1.17"
+ "@storybook/client-api" "6.1.17"
+ "@storybook/components" "6.1.17"
+ "@storybook/core-events" "6.1.17"
+ "@storybook/theming" "6.1.17"
core-js "^3.0.1"
fast-deep-equal "^3.1.1"
global "^4.3.2"
@@ -2429,17 +2429,17 @@
util-deprecate "^1.0.2"
uuid "^8.0.0"
-"@storybook/addon-backgrounds@^6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.1.9.tgz#4e9647001b2f396f56428218480f541e3a8a0e60"
- integrity sha512-0/nnbnWZqo4NjyHFxcCHkcU+t8uUdk///9jSXRs4swmOLIFRaftEc/ZJ2rScu1Sc7y0CQdbk1Jjyx5/2cHBQtw==
- dependencies:
- "@storybook/addons" "6.1.9"
- "@storybook/api" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/components" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/theming" "6.1.9"
+"@storybook/addon-backgrounds@^6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.1.17.tgz#df4eeec1df72d5f835e82bee433493110463f896"
+ integrity sha512-1a8Vu50eQWdwMek9w2QOehhu10aZYzyR404qwGvPCRGt5uMMsKxoKvv1M6/ETW7d2G4Srl/Ka+k4x6ykoHIepA==
+ dependencies:
+ "@storybook/addons" "6.1.17"
+ "@storybook/api" "6.1.17"
+ "@storybook/client-logger" "6.1.17"
+ "@storybook/components" "6.1.17"
+ "@storybook/core-events" "6.1.17"
+ "@storybook/theming" "6.1.17"
core-js "^3.0.1"
global "^4.3.2"
memoizerific "^1.11.3"
@@ -2447,18 +2447,18 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/addon-knobs@^6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.9.tgz#49773931770effc208db094c61eeecbceaf5836b"
- integrity sha512-aUKD9FaQGl/WOkGT6utElspYZJ7cBtUARe41JN59qOao7RNviabipQUASrjORcYUUU55sfKsLPEqQaEKB3x2bw==
- dependencies:
- "@storybook/addons" "6.1.9"
- "@storybook/api" "6.1.9"
- "@storybook/channels" "6.1.9"
- "@storybook/client-api" "6.1.9"
- "@storybook/components" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/theming" "6.1.9"
+"@storybook/addon-knobs@^6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.1.17.tgz#c7cdd5be813c2b80ce7f464eabf8ceb06486e82d"
+ integrity sha512-WUkoGtHhXIurXFQybsMXZaphAtCNclZjZHvji8O5eg+ahx7pIM/Wldh3uJwOdOkW5LHxT76hLxPvuXvOEysnbw==
+ dependencies:
+ "@storybook/addons" "6.1.17"
+ "@storybook/api" "6.1.17"
+ "@storybook/channels" "6.1.17"
+ "@storybook/client-api" "6.1.17"
+ "@storybook/components" "6.1.17"
+ "@storybook/core-events" "6.1.17"
+ "@storybook/theming" "6.1.17"
copy-to-clipboard "^3.0.8"
core-js "^3.0.1"
escape-html "^1.0.3"
@@ -2498,21 +2498,6 @@
global "^4.3.2"
regenerator-runtime "^0.13.7"
-"@storybook/addons@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.1.9.tgz#78f3cb27b7d934f091f311f89b6ca312d34f12b8"
- integrity sha512-NRxdlGLmmSoVwlirVRgKC8xmW9cFkG+Sp5GEd4XkJDaaIg2vKR3RuFU9GuvIOVMxOhhERqhQ07bnDaAMKbFzGw==
- dependencies:
- "@storybook/api" "6.1.9"
- "@storybook/channels" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/router" "6.1.9"
- "@storybook/theming" "6.1.9"
- core-js "^3.0.1"
- global "^4.3.2"
- regenerator-runtime "^0.13.7"
-
"@storybook/api@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.17.tgz#50393ce9b718063b67680212df895eceacc0c11d"
@@ -2538,31 +2523,6 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/api@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.1.9.tgz#3f9bf00b2b18fa02965079fe775bd713677b30a3"
- integrity sha512-S9SXlSiMeI450NIbOnx3UU9TZNyVD7jcBCjfNzhj0PqzRX/IG5Usj+R88Jm6MSIDjtsVjrWRCou+PrCh2xMnlQ==
- dependencies:
- "@reach/router" "^1.3.3"
- "@storybook/channels" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/csf" "0.0.1"
- "@storybook/router" "6.1.9"
- "@storybook/semver" "^7.3.2"
- "@storybook/theming" "6.1.9"
- "@types/reach__router" "^1.3.5"
- core-js "^3.0.1"
- fast-deep-equal "^3.1.1"
- global "^4.3.2"
- lodash "^4.17.15"
- memoizerific "^1.11.3"
- regenerator-runtime "^0.13.7"
- store2 "^2.7.1"
- telejson "^5.0.2"
- ts-dedent "^2.0.0"
- util-deprecate "^1.0.2"
-
"@storybook/channel-postmessage@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.17.tgz#309ce67c94637ec13319d4ce360a8f3742ddbaf4"
@@ -2576,19 +2536,6 @@
qs "^6.6.0"
telejson "^5.0.2"
-"@storybook/channel-postmessage@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.1.9.tgz#5d73c67ba94bcf68b14138bba6c5bb0850c72c5e"
- integrity sha512-tX7pD9Xrf1WsatpJqtJ6o8MlgxG7jH+oFhNPkGvUbWiolVDQmuDndwM8Hh1kUnOWlyE1AN5hlM7av8MY+9D3NA==
- dependencies:
- "@storybook/channels" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/core-events" "6.1.9"
- core-js "^3.0.1"
- global "^4.3.2"
- qs "^6.6.0"
- telejson "^5.0.2"
-
"@storybook/channels@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.17.tgz#2cc89a6b9727d19c24b15fa3cb15569b469db864"
@@ -2598,15 +2545,6 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/channels@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.1.9.tgz#94f07ff3615b11c07d1902be6b6cd298c0eea55c"
- integrity sha512-aV+KsZPuoTtFKSMUkSCyVlVmtVHkSH35dSbyMazjlUD9cOLwkXB1s+LZL/GxxSR6a6uR75V0QWxItfNxaJETMQ==
- dependencies:
- core-js "^3.0.1"
- ts-dedent "^2.0.0"
- util-deprecate "^1.0.2"
-
"@storybook/client-api@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.17.tgz#3ced22f08a47af70ccf8929111bc44b79e9e8ec0"
@@ -2631,30 +2569,6 @@
ts-dedent "^2.0.0"
util-deprecate "^1.0.2"
-"@storybook/client-api@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.1.9.tgz#d4a8d38bc657f26e4837831b961e085da1954d51"
- integrity sha512-b2DFaGAS5G2ly3UJY5NJNXh/LxgLgSJLbqPL4t48MFW5XjH+rmEWXE9P+ujCaPclH1/y7mZRMprDj3ycDbRo3Q==
- dependencies:
- "@storybook/addons" "6.1.9"
- "@storybook/channel-postmessage" "6.1.9"
- "@storybook/channels" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/csf" "0.0.1"
- "@types/qs" "^6.9.0"
- "@types/webpack-env" "^1.15.3"
- core-js "^3.0.1"
- global "^4.3.2"
- lodash "^4.17.15"
- memoizerific "^1.11.3"
- qs "^6.6.0"
- regenerator-runtime "^0.13.7"
- stable "^0.1.8"
- store2 "^2.7.1"
- ts-dedent "^2.0.0"
- util-deprecate "^1.0.2"
-
"@storybook/client-logger@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.17.tgz#0d89aaf824457f19bf9aa585bbcada57595e7d01"
@@ -2663,14 +2577,6 @@
core-js "^3.0.1"
global "^4.3.2"
-"@storybook/client-logger@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.9.tgz#1d61a64000d4691780d75e19b78fd44adfdb5d9c"
- integrity sha512-i7Q2ky9+Jwv+wmnlOGxmDOEdmaTIB69OQnnZNWGKufOwoIMjn6QO0VifARyA9W++nNSijjJ5th84tLJALaoCTA==
- dependencies:
- core-js "^3.0.1"
- global "^4.3.2"
-
"@storybook/components@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.17.tgz#f92d36e370ec6039d8c7cee9ef13dda866eed3da"
@@ -2697,32 +2603,6 @@
react-textarea-autosize "^8.1.1"
ts-dedent "^2.0.0"
-"@storybook/components@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.1.9.tgz#f25d18f3a410cc7e9549ddb3c971c40d9108d4d8"
- integrity sha512-cYYm3fHo9MW0bbl47lu1ncwulV7V9VEF8FC96uvys07oaCTFWKzQ0z/FD0nCqeK6eEz1+SEqnGwLFmOtqlRXDQ==
- dependencies:
- "@popperjs/core" "^2.4.4"
- "@storybook/client-logger" "6.1.9"
- "@storybook/csf" "0.0.1"
- "@storybook/theming" "6.1.9"
- "@types/overlayscrollbars" "^1.9.0"
- "@types/react-color" "^3.0.1"
- "@types/react-syntax-highlighter" "11.0.4"
- core-js "^3.0.1"
- fast-deep-equal "^3.1.1"
- global "^4.3.2"
- lodash "^4.17.15"
- markdown-to-jsx "^6.11.4"
- memoizerific "^1.11.3"
- overlayscrollbars "^1.10.2"
- polished "^3.4.4"
- react-color "^2.17.0"
- react-popper-tooltip "^3.1.0"
- react-syntax-highlighter "^13.5.0"
- react-textarea-autosize "^8.1.1"
- ts-dedent "^2.0.0"
-
"@storybook/core-events@6.1.17":
version "6.1.17"
resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.17.tgz#697ed916fcb2a411bc9f8bdbfacd0eb9d394eb58"
@@ -2730,17 +2610,10 @@
dependencies:
core-js "^3.0.1"
-"@storybook/core-events@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.1.9.tgz#0a88281837d1aa657a93a9abf7f5aad65b8d68e7"
- integrity sha512-oOpqpjCTJCt0U5lnQ16OZU0iKIDh2/MIg4yrnDw+Pt6zGyX3zSvtB+9W8LQFnMwm+cXaNmiizGwt/W+4OiORjQ==
- dependencies:
- core-js "^3.0.1"
-
-"@storybook/core@6.1.9", "@storybook/core@^6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.9.tgz#e6575e294cb4d2d9b57d5976a145cae8f4a88594"
- integrity sha512-guz+R6eDX923Cw7NqgS5PrpTmmjDB+m5X1iF9pwKlpPTfzIiT/wTzJm4PwhFoGONNoXrItObX/6hW6OQbX4aOA==
+"@storybook/core@6.1.17", "@storybook/core@^6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.1.17.tgz#21c3d2c23fcaac4b930c9413f396d158aaeb7546"
+ integrity sha512-9x8ezlKlm8SQ+OW3kKwJwuVcaTDCw2OlA9YZEOo1kdRKsiiy5X14VqjJocl/BqnDt2VgzUUchz3m4neHYMAivQ==
dependencies:
"@babel/core" "^7.12.3"
"@babel/plugin-proposal-class-properties" "^7.12.1"
@@ -2764,20 +2637,20 @@
"@babel/preset-react" "^7.12.1"
"@babel/preset-typescript" "^7.12.1"
"@babel/register" "^7.12.1"
- "@storybook/addons" "6.1.9"
- "@storybook/api" "6.1.9"
- "@storybook/channel-postmessage" "6.1.9"
- "@storybook/channels" "6.1.9"
- "@storybook/client-api" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/components" "6.1.9"
- "@storybook/core-events" "6.1.9"
+ "@storybook/addons" "6.1.17"
+ "@storybook/api" "6.1.17"
+ "@storybook/channel-postmessage" "6.1.17"
+ "@storybook/channels" "6.1.17"
+ "@storybook/client-api" "6.1.17"
+ "@storybook/client-logger" "6.1.17"
+ "@storybook/components" "6.1.17"
+ "@storybook/core-events" "6.1.17"
"@storybook/csf" "0.0.1"
- "@storybook/node-logger" "6.1.9"
- "@storybook/router" "6.1.9"
+ "@storybook/node-logger" "6.1.17"
+ "@storybook/router" "6.1.17"
"@storybook/semver" "^7.3.2"
- "@storybook/theming" "6.1.9"
- "@storybook/ui" "6.1.9"
+ "@storybook/theming" "6.1.17"
+ "@storybook/ui" "6.1.17"
"@types/glob-base" "^0.3.0"
"@types/micromatch" "^4.0.1"
"@types/node-fetch" "^2.5.4"
@@ -2851,10 +2724,10 @@
dependencies:
lodash "^4.17.15"
-"@storybook/node-logger@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.9.tgz#c63a61f72209d76eeeffe9d151fec043864b9438"
- integrity sha512-2gP9BSBXEOGIcUyzRdIkIJi1UEINUAIyuv9bfKODo4GfujRg7DLz/mpi/FdwmulGg/viXWSXa6ccb6ziIgY9RA==
+"@storybook/node-logger@6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.1.17.tgz#468e65c9f0c103d4b0cd7f5da945af81e9aaa3d4"
+ integrity sha512-Z0xQ4kzvf7GnwFG9UY1HJO2UR66t8IBnC5GxvWrJ/kwXE+DRF3mm/MT41Zz/d9zAY5Vo4mhE5zRwlYSAtrxQIQ==
dependencies:
"@types/npmlog" "^4.1.2"
chalk "^4.0.0"
@@ -2862,17 +2735,17 @@
npmlog "^4.1.2"
pretty-hrtime "^1.0.3"
-"@storybook/react@^6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.1.9.tgz#063427015b3d0ce582b1b6b7826d40d963d265ce"
- integrity sha512-HJWHQE+eCC7sz1vqvgmBMn2sA1uc0ByEj+NeSgyi45jBFI+Ke4a8hxx6k5XA7k9gLznqG8TPGg0z6EdQTJTLkQ==
+"@storybook/react@^6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.1.17.tgz#cb48386d435984d7ca58a24e686a72159367077b"
+ integrity sha512-gBylKDuwUzWueB6mEhTo72SelWU3vPWHAFsi+NK6zWFIc2a5dJc9QqDfN+2rBhVOdRXqhSHzYwNWurqYpWuqew==
dependencies:
"@babel/preset-flow" "^7.12.1"
"@babel/preset-react" "^7.12.1"
"@pmmmwh/react-refresh-webpack-plugin" "^0.4.2"
- "@storybook/addons" "6.1.9"
- "@storybook/core" "6.1.9"
- "@storybook/node-logger" "6.1.9"
+ "@storybook/addons" "6.1.17"
+ "@storybook/core" "6.1.17"
+ "@storybook/node-logger" "6.1.17"
"@storybook/semver" "^7.3.2"
"@types/webpack-env" "^1.15.3"
babel-plugin-add-react-displayname "^0.0.5"
@@ -2901,18 +2774,6 @@
memoizerific "^1.11.3"
qs "^6.6.0"
-"@storybook/router@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.1.9.tgz#c0b24dc3ab53d58541b81c7abea2f11d7fbbebf6"
- integrity sha512-kIlmSFBnqI198oMCncFZR7MxoV5/kP6KS0paFcyu1XE1zO2ovV6eQZ8pPpOjSsD/ISu4Y44uE+ZDNsEehjj6GQ==
- dependencies:
- "@reach/router" "^1.3.3"
- "@types/reach__router" "^1.3.5"
- core-js "^3.0.1"
- global "^4.3.2"
- memoizerific "^1.11.3"
- qs "^6.6.0"
-
"@storybook/semver@^7.3.2":
version "7.3.2"
resolved "https://registry.yarnpkg.com/@storybook/semver/-/semver-7.3.2.tgz#f3b9c44a1c9a0b933c04e66d0048fcf2fa10dac0"
@@ -2921,10 +2782,10 @@
core-js "^3.6.5"
find-up "^4.1.0"
-"@storybook/storybook-deployer@^2.8.6":
- version "2.8.6"
- resolved "https://registry.yarnpkg.com/@storybook/storybook-deployer/-/storybook-deployer-2.8.6.tgz#00c2e84f27dfaa88cb0785361453f23b1ebb4ea3"
- integrity sha512-Bpe7ZtsR5NUuohK3VsQa+nxEHtVxMZZo3DRlRUZW5IZOmzmvSID3i+jkizloG9xO7sw5zUvlD31YMHm7OtdrMA==
+"@storybook/storybook-deployer@^2.8.7":
+ version "2.8.7"
+ resolved "https://registry.yarnpkg.com/@storybook/storybook-deployer/-/storybook-deployer-2.8.7.tgz#c1eed33d03bd9267f884c60eea8e03dc3261ec11"
+ integrity sha512-O0hKHV6hg93fPMvKGC5M/sd7KTL473+SzMKm+WZNVEyLEfXXcVU+Ts9/VL1IhmC1P2A8Bg9oBnkcPqAqjAN46w==
dependencies:
git-url-parse "^11.1.2"
glob "^7.1.3"
@@ -2950,39 +2811,21 @@
resolve-from "^5.0.0"
ts-dedent "^2.0.0"
-"@storybook/theming@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.1.9.tgz#8c584aa623f3d6e33b1e3b3de2ec1f41bdc5d9ab"
- integrity sha512-orzMQkyEhAQEi0E9iwmUkzh5yPHoYGBz17t2aydDeT6oGKii6if8Mq2oPVycfVKZ84QO7GFAS9q1nVCRcuD8oA==
- dependencies:
- "@emotion/core" "^10.1.1"
- "@emotion/is-prop-valid" "^0.8.6"
- "@emotion/styled" "^10.0.23"
- "@storybook/client-logger" "6.1.9"
- core-js "^3.0.1"
- deep-object-diff "^1.1.0"
- emotion-theming "^10.0.19"
- global "^4.3.2"
- memoizerific "^1.11.3"
- polished "^3.4.4"
- resolve-from "^5.0.0"
- ts-dedent "^2.0.0"
-
-"@storybook/ui@6.1.9":
- version "6.1.9"
- resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.9.tgz#1ed3168d9fe5827285c13d8507dd1fd872830542"
- integrity sha512-4MK5iTf7kI5DYVeWRiD6lkXdd0S6eiQJu9lvWqMOQJLOH5Bq77g0Ejo+38RTEQpV6we7hCPWWnRXQBjmJ2+19w==
+"@storybook/ui@6.1.17":
+ version "6.1.17"
+ resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.1.17.tgz#c29e7a03c645dd94793a3cbd587fcb6e0ba0f22e"
+ integrity sha512-D4Vri1MmqfmNq+g1hSRqZyld5zX2VLUexQHGSPmNj+FhlOzkeNA5RcoMBWMvIUSUENiBx3a5gmr/6cbXo7ljdQ==
dependencies:
"@emotion/core" "^10.1.1"
- "@storybook/addons" "6.1.9"
- "@storybook/api" "6.1.9"
- "@storybook/channels" "6.1.9"
- "@storybook/client-logger" "6.1.9"
- "@storybook/components" "6.1.9"
- "@storybook/core-events" "6.1.9"
- "@storybook/router" "6.1.9"
+ "@storybook/addons" "6.1.17"
+ "@storybook/api" "6.1.17"
+ "@storybook/channels" "6.1.17"
+ "@storybook/client-logger" "6.1.17"
+ "@storybook/components" "6.1.17"
+ "@storybook/core-events" "6.1.17"
+ "@storybook/router" "6.1.17"
"@storybook/semver" "^7.3.2"
- "@storybook/theming" "6.1.9"
+ "@storybook/theming" "6.1.17"
"@types/markdown-to-jsx" "^6.11.0"
copy-to-clipboard "^3.0.8"
core-js "^3.0.1"
@@ -3145,11 +2988,6 @@
dependencies:
"@types/unist" "*"
-"@types/history@*":
- version "4.7.3"
- resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.3.tgz#856c99cdc1551d22c22b18b5402719affec9839a"
- integrity sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==
-
"@types/html-minifier-terser@^5.0.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50"
@@ -3304,14 +3142,6 @@
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b"
integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==
-"@types/reach__router@^1.3.5":
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.6.tgz#413417ce74caab331c70ce6a03a4c825188e4709"
- integrity sha512-RHYataCUPQnt+GHoASyRLq6wmZ0n8jWlBW8Lxcwd30NN6vQfbmTeoSDfkgxO0S1lEzArp8OFDsq5KIs7FygjtA==
- dependencies:
- "@types/history" "*"
- "@types/react" "*"
-
"@types/reach__router@^1.3.7":
version "1.3.7"
resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.7.tgz#de8ab374259ae7f7499fc1373b9697a5f3cd6428"
@@ -6039,12 +5869,12 @@ bn.js@^1.0.0:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-1.3.0.tgz#0db4cbf96f8f23b742f5bcb9d1aa7a9994a05e83"
integrity sha1-DbTL+W+PI7dC9by50ap6mZSgXoM=
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.7, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0:
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.7, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0:
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
-bn.js@^5.1.1:
+bn.js@^5.1.1, bn.js@^5.1.2:
version "5.1.3"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b"
integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==
@@ -6518,6 +6348,13 @@ buffer-xor@^1.0.3:
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
+buffer-xor@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-2.0.2.tgz#34f7c64f04c777a1f8aac5e661273bb9dd320289"
+ integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==
+ dependencies:
+ safe-buffer "^5.1.1"
+
buffer@^4.3.0:
version "4.9.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
@@ -10261,27 +10098,23 @@ eth-sig-util@^1.4.0, eth-sig-util@^1.4.2:
ethereumjs-util "^5.1.1"
eth-sig-util@^2.0.0, eth-sig-util@^2.4.4, eth-sig-util@^2.5.0:
- version "2.5.3"
- resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-2.5.3.tgz#6938308b38226e0b3085435474900b03036abcbe"
- integrity sha512-KpXbCKmmBUNUTGh9MRKmNkIPietfhzBqqYqysDavLseIiMUGl95k6UcPEkALAZlj41e9E6yioYXc1PC333RKqw==
+ version "2.5.4"
+ resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-2.5.4.tgz#577b01fe491b6bf59b0464be09633e20c1677bc5"
+ integrity sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==
dependencies:
- buffer "^5.2.1"
- elliptic "^6.4.0"
- ethereumjs-abi "0.6.5"
+ ethereumjs-abi "0.6.8"
ethereumjs-util "^5.1.1"
- tweetnacl "^1.0.0"
+ tweetnacl "^1.0.3"
tweetnacl-util "^0.15.0"
eth-sig-util@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-3.0.0.tgz#75133b3d7c20a5731af0690c385e184ab942b97e"
- integrity sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ==
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-3.0.1.tgz#8753297c83a3f58346bd13547b59c4b2cd110c96"
+ integrity sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==
dependencies:
- buffer "^5.2.1"
- elliptic "^6.4.0"
- ethereumjs-abi "0.6.5"
+ ethereumjs-abi "^0.6.8"
ethereumjs-util "^5.1.1"
- tweetnacl "^1.0.0"
+ tweetnacl "^1.0.3"
tweetnacl-util "^0.15.0"
eth-simple-keyring@^3.5.0:
@@ -10324,13 +10157,13 @@ eth-tx-summary@^3.1.2:
through2 "^2.0.3"
ethashjs@~0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/ethashjs/-/ethashjs-0.0.7.tgz#30bfe4196726690a0c59d3b8272e70d4d0c34bae"
- integrity sha1-ML/kGWcmaQoMWdO4Jy5w1NDDS64=
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/ethashjs/-/ethashjs-0.0.8.tgz#227442f1bdee409a548fb04136e24c874f3aa6f9"
+ integrity sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==
dependencies:
- async "^1.4.2"
- buffer-xor "^1.0.3"
- ethereumjs-util "^4.0.1"
+ async "^2.1.2"
+ buffer-xor "^2.0.1"
+ ethereumjs-util "^7.0.2"
miller-rabin "^4.0.0"
ethereum-bloom-filters@^1.0.6:
@@ -10376,15 +10209,7 @@ ethereum-ens-network-map@^1.0.0, ethereum-ens-network-map@^1.0.2:
resolved "https://registry.yarnpkg.com/ethereum-ens-network-map/-/ethereum-ens-network-map-1.0.2.tgz#4e27bad18dae7bd95d84edbcac2c9e739fc959b9"
integrity sha512-5qwJ5n3YhjSpE6O/WEBXCAb2nagUgyagJ6C0lGUBWC4LjKp/rRzD+pwtDJ6KCiITFEAoX4eIrWOjRy0Sylq5Hg==
-ethereumjs-abi@0.6.5:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241"
- integrity sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=
- dependencies:
- bn.js "^4.10.0"
- ethereumjs-util "^4.3.0"
-
-ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.4, ethereumjs-abi@^0.6.5:
+ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.4, ethereumjs-abi@^0.6.5, ethereumjs-abi@^0.6.8:
version "0.6.8"
resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae"
integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==
@@ -10505,17 +10330,6 @@ ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumj
ethjs-util "0.1.6"
rlp "^2.2.3"
-ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6"
- integrity sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=
- dependencies:
- bn.js "^4.8.0"
- create-hash "^1.1.2"
- keccakjs "^0.2.0"
- rlp "^2.0.0"
- secp256k1 "^3.0.1"
-
ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5, ethereumjs-util@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642"
@@ -10529,6 +10343,18 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum
safe-buffer "^5.1.1"
secp256k1 "^3.0.1"
+ethereumjs-util@^7.0.2:
+ version "7.0.8"
+ resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.8.tgz#5258762b7b17e3d828e41834948363ff0a703ffd"
+ integrity sha512-JJt7tDpCAmDPw/sGoFYeq0guOVqT3pTE9xlEbBmc/nlCij3JRCoS2c96SQ6kXVHOT3xWUNLDm5QCJLQaUnVAtQ==
+ dependencies:
+ "@types/bn.js" "^4.11.3"
+ bn.js "^5.1.2"
+ create-hash "^1.1.2"
+ ethereum-cryptography "^0.1.3"
+ ethjs-util "0.1.6"
+ rlp "^2.2.4"
+
ethereumjs-util@~6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz#e9c51e5549e8ebd757a339cc00f5380507e799c8"
@@ -15923,7 +15749,7 @@ keccak@^1.0.2:
nan "^2.2.1"
safe-buffer "^5.1.0"
-keccakjs@^0.2.0, keccakjs@^0.2.1:
+keccakjs@^0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72"
integrity sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg==
@@ -21553,7 +21379,7 @@ react-motion@^0.5.2:
prop-types "^15.5.8"
raf "^3.1.0"
-react-popper-tooltip@^3.1.0, react-popper-tooltip@^3.1.1:
+react-popper-tooltip@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz#329569eb7b287008f04fcbddb6370452ad3f9eac"
integrity sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==
@@ -22759,6 +22585,13 @@ rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3:
dependencies:
bn.js "^4.11.1"
+rlp@^2.2.4:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c"
+ integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==
+ dependencies:
+ bn.js "^4.11.1"
+
rn-host-detect@^1.1.5:
version "1.2.0"
resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.2.0.tgz#8b0396fc05631ec60c1cb8789e5070cdb04d0da0"
@@ -25426,7 +25259,7 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-tweetnacl@^1.0.0, tweetnacl@^1.0.1:
+tweetnacl@^1.0.0, tweetnacl@^1.0.1, tweetnacl@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==