mirror of
https://github.com/Qortal/Qortal-Hub.git
synced 2025-06-27 01:21:21 +00:00
Move save_options into message.generic (json)
This commit is contained in:
parent
b6f8b190c0
commit
0940f29e3d
96
src/App.tsx
96
src/App.tsx
@ -44,8 +44,6 @@ import {
|
|||||||
saveFileToDisk,
|
saveFileToDisk,
|
||||||
saveSeedPhraseToDisk,
|
saveSeedPhraseToDisk,
|
||||||
} from './utils/generateWallet/generateWallet';
|
} from './utils/generateWallet/generateWallet';
|
||||||
import { kdf } from './deps/kdf';
|
|
||||||
import { generateSaveWalletData } from './utils/generateWallet/storeWallet';
|
|
||||||
import { crypto, walletVersion } from './constants/decryptWallet';
|
import { crypto, walletVersion } from './constants/decryptWallet';
|
||||||
import PhraseWallet from './utils/generateWallet/phrase-wallet';
|
import PhraseWallet from './utils/generateWallet/phrase-wallet';
|
||||||
import {
|
import {
|
||||||
@ -147,21 +145,21 @@ import { useAtom, useSetAtom } from 'jotai';
|
|||||||
import { useResetAtom } from 'jotai/utils';
|
import { useResetAtom } from 'jotai/utils';
|
||||||
|
|
||||||
type extStates =
|
type extStates =
|
||||||
| 'not-authenticated'
|
|
||||||
| 'authenticated'
|
| 'authenticated'
|
||||||
| 'send-qort'
|
| 'buy-order-submitted'
|
||||||
| 'web-app-request-connection'
|
|
||||||
| 'web-app-request-payment'
|
|
||||||
| 'web-app-request-authentication'
|
|
||||||
| 'download-wallet'
|
|
||||||
| 'create-wallet'
|
| 'create-wallet'
|
||||||
|
| 'download-wallet'
|
||||||
|
| 'group'
|
||||||
|
| 'not-authenticated'
|
||||||
|
| 'send-qort'
|
||||||
| 'transfer-success-regular'
|
| 'transfer-success-regular'
|
||||||
| 'transfer-success-request'
|
| 'transfer-success-request'
|
||||||
| 'wallet-dropped'
|
| 'wallet-dropped'
|
||||||
| 'web-app-request-buy-order'
|
|
||||||
| 'buy-order-submitted'
|
|
||||||
| 'wallets'
|
| 'wallets'
|
||||||
| 'group';
|
| 'web-app-request-authentication'
|
||||||
|
| 'web-app-request-buy-order'
|
||||||
|
| 'web-app-request-connection'
|
||||||
|
| 'web-app-request-payment';
|
||||||
|
|
||||||
interface MyContextInterface {
|
interface MyContextInterface {
|
||||||
isShow: boolean;
|
isShow: boolean;
|
||||||
@ -277,6 +275,7 @@ export const getBaseApiReactSocket = (customApi?: string) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const isMainWindow = true;
|
export const isMainWindow = true;
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [extState, setExtstate] = useState<extStates>('not-authenticated');
|
const [extState, setExtstate] = useState<extStates>('not-authenticated');
|
||||||
const [desktopViewMode, setDesktopViewMode] = useState('home');
|
const [desktopViewMode, setDesktopViewMode] = useState('home');
|
||||||
@ -308,18 +307,22 @@ function App() {
|
|||||||
const [isLoading, setIsLoading] = useState<boolean>(false);
|
const [isLoading, setIsLoading] = useState<boolean>(false);
|
||||||
const [isLoadingSendCoin, setIsLoadingSendCoin] = useState<boolean>(false);
|
const [isLoadingSendCoin, setIsLoadingSendCoin] = useState<boolean>(false);
|
||||||
|
|
||||||
const { t } = useTranslation(['auth', 'core']);
|
const { t } = useTranslation(['auth', 'core', 'group']);
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
|
||||||
const [
|
const [
|
||||||
walletToBeDownloadedPasswordConfirm,
|
walletToBeDownloadedPasswordConfirm,
|
||||||
setWalletToBeDownloadedPasswordConfirm,
|
setWalletToBeDownloadedPasswordConfirm,
|
||||||
] = useState<string>('');
|
] = useState<string>('');
|
||||||
|
|
||||||
const [walletToBeDownloadedError, setWalletToBeDownloadedError] =
|
const [walletToBeDownloadedError, setWalletToBeDownloadedError] =
|
||||||
useState<string>('');
|
useState<string>('');
|
||||||
|
|
||||||
const [walletToBeDecryptedError, setWalletToBeDecryptedError] =
|
const [walletToBeDecryptedError, setWalletToBeDecryptedError] =
|
||||||
useState<string>('');
|
useState<string>('');
|
||||||
|
|
||||||
const [isFocused, setIsFocused] = useState(true);
|
const [isFocused, setIsFocused] = useState(true);
|
||||||
|
|
||||||
const [hasSettingsChanged, setHasSettingsChanged] = useAtom(
|
const [hasSettingsChanged, setHasSettingsChanged] = useAtom(
|
||||||
hasSettingsChangedAtom
|
hasSettingsChangedAtom
|
||||||
);
|
);
|
||||||
@ -328,6 +331,7 @@ function App() {
|
|||||||
const downloadResource = useFetchResources();
|
const downloadResource = useFetchResources();
|
||||||
const holdRefExtState = useRef<extStates>('not-authenticated');
|
const holdRefExtState = useRef<extStates>('not-authenticated');
|
||||||
const isFocusedRef = useRef<boolean>(true);
|
const isFocusedRef = useRef<boolean>(true);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
showTutorial,
|
showTutorial,
|
||||||
openTutorialModal,
|
openTutorialModal,
|
||||||
@ -335,7 +339,9 @@ function App() {
|
|||||||
setOpenTutorialModal,
|
setOpenTutorialModal,
|
||||||
hasSeenGettingStarted,
|
hasSeenGettingStarted,
|
||||||
} = useHandleTutorials();
|
} = useHandleTutorials();
|
||||||
|
|
||||||
const { isShow, onCancel, onOk, show, message } = useModal();
|
const { isShow, onCancel, onOk, show, message } = useModal();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
isShow: isShowUnsavedChanges,
|
isShow: isShowUnsavedChanges,
|
||||||
onCancel: onCancelUnsavedChanges,
|
onCancel: onCancelUnsavedChanges,
|
||||||
@ -343,6 +349,7 @@ function App() {
|
|||||||
show: showUnsavedChanges,
|
show: showUnsavedChanges,
|
||||||
message: messageUnsavedChanges,
|
message: messageUnsavedChanges,
|
||||||
} = useModal();
|
} = useModal();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
isShow: isShowInfo,
|
isShow: isShowInfo,
|
||||||
onCancel: onCancelInfo,
|
onCancel: onCancelInfo,
|
||||||
@ -358,6 +365,7 @@ function App() {
|
|||||||
isShow: isShowQortalRequest,
|
isShow: isShowQortalRequest,
|
||||||
message: messageQortalRequest,
|
message: messageQortalRequest,
|
||||||
} = useModal();
|
} = useModal();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
onCancel: onCancelQortalRequestExtension,
|
onCancel: onCancelQortalRequestExtension,
|
||||||
onOk: onOkQortalRequestExtension,
|
onOk: onOkQortalRequestExtension,
|
||||||
@ -365,6 +373,7 @@ function App() {
|
|||||||
isShow: isShowQortalRequestExtension,
|
isShow: isShowQortalRequestExtension,
|
||||||
message: messageQortalRequestExtension,
|
message: messageQortalRequestExtension,
|
||||||
} = useModal();
|
} = useModal();
|
||||||
|
|
||||||
const setIsRunningPublicNode = useSetAtom(isRunningPublicNodeAtom);
|
const setIsRunningPublicNode = useSetAtom(isRunningPublicNodeAtom);
|
||||||
|
|
||||||
const [infoSnack, setInfoSnack] = useState(null);
|
const [infoSnack, setInfoSnack] = useState(null);
|
||||||
@ -375,15 +384,18 @@ function App() {
|
|||||||
const [apiKey, setApiKey] = useState('');
|
const [apiKey, setApiKey] = useState('');
|
||||||
const [isOpenSendQort, setIsOpenSendQort] = useState(false);
|
const [isOpenSendQort, setIsOpenSendQort] = useState(false);
|
||||||
const [isOpenSendQortSuccess, setIsOpenSendQortSuccess] = useState(false);
|
const [isOpenSendQortSuccess, setIsOpenSendQortSuccess] = useState(false);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
isUserBlocked,
|
isUserBlocked,
|
||||||
addToBlockList,
|
addToBlockList,
|
||||||
removeBlockFromList,
|
removeBlockFromList,
|
||||||
getAllBlockedUsers,
|
getAllBlockedUsers,
|
||||||
} = useBlockedAddresses();
|
} = useBlockedAddresses();
|
||||||
|
|
||||||
const [currentNode, setCurrentNode] = useState({
|
const [currentNode, setCurrentNode] = useState({
|
||||||
url: 'http://127.0.0.1:12391',
|
url: 'http://127.0.0.1:12391',
|
||||||
});
|
});
|
||||||
|
|
||||||
const [useLocalNode, setUseLocalNode] = useState(false);
|
const [useLocalNode, setUseLocalNode] = useState(false);
|
||||||
|
|
||||||
const [confirmRequestRead, setConfirmRequestRead] = useState(false);
|
const [confirmRequestRead, setConfirmRequestRead] = useState(false);
|
||||||
@ -662,10 +674,15 @@ function App() {
|
|||||||
'kdfThreads',
|
'kdfThreads',
|
||||||
];
|
];
|
||||||
for (const field of requiredFields) {
|
for (const field of requiredFields) {
|
||||||
if (!(field in pf)) throw new Error(field + ' not found in JSON');
|
if (!(field in pf))
|
||||||
|
throw new Error(
|
||||||
|
t('auth:message.error.field_not_found_json', {
|
||||||
|
field: field,
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
setRawWallet(pf);
|
setRawWallet(pf);
|
||||||
// setExtstate("authenticated");
|
|
||||||
setExtstate('wallet-dropped');
|
setExtstate('wallet-dropped');
|
||||||
setdecryptedWallet(null);
|
setdecryptedWallet(null);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -958,25 +975,39 @@ function App() {
|
|||||||
const createAccountFunc = async () => {
|
const createAccountFunc = async () => {
|
||||||
try {
|
try {
|
||||||
if (!walletToBeDownloadedPassword) {
|
if (!walletToBeDownloadedPassword) {
|
||||||
setWalletToBeDownloadedError('Please enter a password');
|
setWalletToBeDownloadedError(
|
||||||
|
t('core:message.generic.password_enter', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!walletToBeDownloadedPasswordConfirm) {
|
if (!walletToBeDownloadedPasswordConfirm) {
|
||||||
setWalletToBeDownloadedError('Please confirm your password');
|
setWalletToBeDownloadedError(
|
||||||
|
t('core:message.generic.password_confirm', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
walletToBeDownloadedPasswordConfirm !== walletToBeDownloadedPassword
|
walletToBeDownloadedPasswordConfirm !== walletToBeDownloadedPassword
|
||||||
) {
|
) {
|
||||||
setWalletToBeDownloadedError('Password fields do not match!');
|
setWalletToBeDownloadedError(
|
||||||
|
t('core:message.error.password_not_matching', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
|
|
||||||
await new Promise<void>((res) => {
|
await new Promise<void>((res) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
res();
|
res();
|
||||||
}, 250);
|
}, 250);
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await createAccount(generatorRef.current.parsedString);
|
const res = await createAccount(generatorRef.current.parsedString);
|
||||||
const wallet = await res.generateSaveWalletData(
|
const wallet = await res.generateSaveWalletData(
|
||||||
walletToBeDownloadedPassword,
|
walletToBeDownloadedPassword,
|
||||||
@ -1029,9 +1060,10 @@ function App() {
|
|||||||
const logoutFunc = useCallback(async () => {
|
const logoutFunc = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
if (extState === 'authenticated') {
|
if (extState === 'authenticated') {
|
||||||
// TODO translate
|
|
||||||
await showUnsavedChanges({
|
await showUnsavedChanges({
|
||||||
message: 'Are you sure you would like to logout?',
|
message: t('core:question.logout', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
window
|
window
|
||||||
@ -1091,7 +1123,6 @@ function App() {
|
|||||||
setWalletToBeDownloadedPassword('');
|
setWalletToBeDownloadedPassword('');
|
||||||
setShowSeed(false);
|
setShowSeed(false);
|
||||||
setCreationStep(1);
|
setCreationStep(1);
|
||||||
|
|
||||||
setWalletToBeDownloadedPasswordConfirm('');
|
setWalletToBeDownloadedPasswordConfirm('');
|
||||||
setWalletToBeDownloadedError('');
|
setWalletToBeDownloadedError('');
|
||||||
setSendqortState(null);
|
setSendqortState(null);
|
||||||
@ -1166,7 +1197,11 @@ function App() {
|
|||||||
console.error('Failed to decrypt wallet:', error);
|
console.error('Failed to decrypt wallet:', error);
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setWalletToBeDecryptedError('Unable to authenticate. Wrong password');
|
setWalletToBeDecryptedError(
|
||||||
|
t('core:message.error.password_wrong', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1242,17 +1277,18 @@ function App() {
|
|||||||
return (
|
return (
|
||||||
<AuthenticatedContainerInnerLeft
|
<AuthenticatedContainerInnerLeft
|
||||||
sx={{
|
sx={{
|
||||||
|
minWidth: '225px',
|
||||||
overflowY: 'auto',
|
overflowY: 'auto',
|
||||||
padding: '0px 20px',
|
padding: '0px 20px',
|
||||||
minWidth: '225px',
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Spacer height="20px" />
|
<Spacer height="20px" />
|
||||||
|
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
width: '100%',
|
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
justifyContent: 'flex-start',
|
justifyContent: 'flex-start',
|
||||||
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{authenticatedMode === 'qort' && (
|
{authenticatedMode === 'qort' && (
|
||||||
@ -1455,6 +1491,7 @@ function App() {
|
|||||||
>
|
>
|
||||||
{balance?.toFixed(2)} QORT
|
{balance?.toFixed(2)} QORT
|
||||||
</TextP>
|
</TextP>
|
||||||
|
|
||||||
<RefreshIcon
|
<RefreshIcon
|
||||||
onClick={getBalanceFunc}
|
onClick={getBalanceFunc}
|
||||||
sx={{
|
sx={{
|
||||||
@ -2082,6 +2119,7 @@ function App() {
|
|||||||
{messageQortalRequest?.text2 && (
|
{messageQortalRequest?.text2 && (
|
||||||
<>
|
<>
|
||||||
<Spacer height="10px" />
|
<Spacer height="10px" />
|
||||||
|
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
@ -2099,6 +2137,7 @@ function App() {
|
|||||||
{messageQortalRequest?.text2}
|
{messageQortalRequest?.text2}
|
||||||
</TextP>
|
</TextP>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Spacer height="15px" />
|
<Spacer height="15px" />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
@ -2182,6 +2221,7 @@ function App() {
|
|||||||
{messageQortalRequest?.fee}
|
{messageQortalRequest?.fee}
|
||||||
{' QORT'}
|
{' QORT'}
|
||||||
</TextP>
|
</TextP>
|
||||||
|
|
||||||
<Spacer height="15px" />
|
<Spacer height="15px" />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
@ -2627,7 +2667,7 @@ function App() {
|
|||||||
{t('auth:wallet.password', { postProcess: 'capitalizeFirst' })}
|
{t('auth:wallet.password', { postProcess: 'capitalizeFirst' })}
|
||||||
</CustomLabel>
|
</CustomLabel>
|
||||||
|
|
||||||
<Spacer height="5px" />
|
<Spacer height="10px" />
|
||||||
|
|
||||||
<PasswordField
|
<PasswordField
|
||||||
id="standard-adornment-password"
|
id="standard-adornment-password"
|
||||||
@ -2903,7 +2943,9 @@ function App() {
|
|||||||
<Spacer height="14px" />
|
<Spacer height="14px" />
|
||||||
|
|
||||||
<CustomLabel htmlFor="standard-adornment-password">
|
<CustomLabel htmlFor="standard-adornment-password">
|
||||||
Wallet Password
|
{t('auth:wallet.password', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})}
|
||||||
</CustomLabel>
|
</CustomLabel>
|
||||||
|
|
||||||
<Spacer height="5px" />
|
<Spacer height="5px" />
|
||||||
@ -2919,7 +2961,9 @@ function App() {
|
|||||||
<Spacer height="6px" />
|
<Spacer height="6px" />
|
||||||
|
|
||||||
<CustomLabel htmlFor="standard-adornment-password">
|
<CustomLabel htmlFor="standard-adornment-password">
|
||||||
Confirm Wallet Password
|
{t('auth:wallet.password_confirmation', {
|
||||||
|
postProcess: 'capitalizeFirst',
|
||||||
|
})}
|
||||||
</CustomLabel>
|
</CustomLabel>
|
||||||
|
|
||||||
<Spacer height="5px" />
|
<Spacer height="5px" />
|
||||||
|
@ -155,7 +155,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
const fee = await getFee('ARBITRARY');
|
const fee = await getFee('ARBITRARY');
|
||||||
|
|
||||||
await show({
|
await show({
|
||||||
message: t('core:save_options.publish_qnd', {
|
message: t('core:message.generic.publish_qnd', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
}),
|
}),
|
||||||
publishFee: fee.fee + ' QORT',
|
publishFee: fee.fee + ' QORT',
|
||||||
@ -306,7 +306,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
fontSize: '14px',
|
fontSize: '14px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.settings', {
|
{t('core:message.generic.settings', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</Typography>{' '}
|
</Typography>{' '}
|
||||||
@ -335,7 +335,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.qdn', {
|
{t('core:message.generic.qdn', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</Button>
|
</Button>
|
||||||
@ -366,7 +366,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
fontSize: '14px',
|
fontSize: '14px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.register_name', {
|
{t('core:message.generic.register_name', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -387,7 +387,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
fontSize: '14px',
|
fontSize: '14px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.unsaved_changes', {
|
{t('core:message.generic.unsaved_changes', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -446,7 +446,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.revert_qdn', {
|
{t('core:message.generic.revert_qdn', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</LoadingButton>
|
</LoadingButton>
|
||||||
@ -471,7 +471,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
onClick={revertChanges}
|
onClick={revertChanges}
|
||||||
variant="contained"
|
variant="contained"
|
||||||
>
|
>
|
||||||
{t('core:save_options.revert_default', {
|
{t('core:message.generic.revert_default', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</LoadingButton>
|
</LoadingButton>
|
||||||
@ -517,7 +517,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.overwrite_qdn', {
|
{t('core:message.generic.overwrite_qdn', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</LoadingButton>
|
</LoadingButton>
|
||||||
@ -537,7 +537,7 @@ export const Save = ({ isDesktop, disableWidth, myName }) => {
|
|||||||
fontSize: '14px',
|
fontSize: '14px',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('core:save_options.no_pinned_changes', {
|
{t('core:message.generic.no_pinned_changes', {
|
||||||
postProcess: 'capitalizeFirst',
|
postProcess: 'capitalizeFirst',
|
||||||
})}
|
})}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
"message": {
|
"message": {
|
||||||
"error": {
|
"error": {
|
||||||
"account_creation": "could not create account.",
|
"account_creation": "could not create account.",
|
||||||
|
"field_not_found_json": "{{ field }} not found in JSON",
|
||||||
"incorrect_password": "incorrect password",
|
"incorrect_password": "incorrect password",
|
||||||
"invalid_secret_key": "secretKey is not valid",
|
"invalid_secret_key": "secretKey is not valid",
|
||||||
"unable_reencrypt_secret_key": "unable to re-encrypt secret key"
|
"unable_reencrypt_secret_key": "unable to re-encrypt secret key"
|
||||||
|
@ -128,6 +128,8 @@
|
|||||||
"missing_fields": "missing: {{ fields }}",
|
"missing_fields": "missing: {{ fields }}",
|
||||||
"navigation_timeout": "navigation timeout",
|
"navigation_timeout": "navigation timeout",
|
||||||
"network_generic": "network error",
|
"network_generic": "network error",
|
||||||
|
"password_not_matching": "password fields do not match!",
|
||||||
|
"password_wrong": "unable to authenticate. Wrong password",
|
||||||
"publish_app": "unable to publish app",
|
"publish_app": "unable to publish app",
|
||||||
"rating_option": "cannot find rating option",
|
"rating_option": "cannot find rating option",
|
||||||
"save_qdn": "unable to save to QDN",
|
"save_qdn": "unable to save to QDN",
|
||||||
@ -147,18 +149,30 @@
|
|||||||
"name_unavailable": "{{ name }} is unavailable",
|
"name_unavailable": "{{ name }} is unavailable",
|
||||||
"no_description": "no description",
|
"no_description": "no description",
|
||||||
"no_notifications": "no new notifications",
|
"no_notifications": "no new notifications",
|
||||||
|
"no_pinned_changes": "you currently do not have any changes to your pinned apps",
|
||||||
"no_results": "no results",
|
"no_results": "no results",
|
||||||
"one_app_per_name": "note: Currently, only one App and Website is allowed per Name.",
|
"one_app_per_name": "note: Currently, only one App and Website is allowed per Name.",
|
||||||
|
"overwrite_qdn": "overwrite to QDN",
|
||||||
|
"password_confirm": "please confirm a password",
|
||||||
|
"password_enter": "please enter a password",
|
||||||
"publish_data": "publish data to Qortal: anything from apps to videos. Fully decentralized!",
|
"publish_data": "publish data to Qortal: anything from apps to videos. Fully decentralized!",
|
||||||
"publishing": "publishing... Please wait.",
|
"publishing": "publishing... Please wait.",
|
||||||
|
"qdn": "use QDN saving",
|
||||||
"rating": "rating for {{ service }} {{ name }}",
|
"rating": "rating for {{ service }} {{ name }}",
|
||||||
|
"register_name": "you need a registered Qortal name to save your pinned apps to QDN.",
|
||||||
|
"revert_default": "revert to default",
|
||||||
|
"revert_qdn": "revert to QDN",
|
||||||
|
"save_qdn": "save to QDN",
|
||||||
"secure_ownership": "secure ownership of data published by your name. You can even sell your name, along with your data to a third party.",
|
"secure_ownership": "secure ownership of data published by your name. You can even sell your name, along with your data to a third party.",
|
||||||
"select_file": "please select a file",
|
"select_file": "please select a file",
|
||||||
"select_image": "please select an image for a logo",
|
"select_image": "please select an image for a logo",
|
||||||
"select_zip": "select .zip file containing static content:",
|
"select_zip": "select .zip file containing static content:",
|
||||||
"space_for_admins": "sorry, this space is only for Admins."
|
"settings": "you are using the export/import way of saving settings.",
|
||||||
|
"space_for_admins": "sorry, this space is only for Admins.",
|
||||||
|
"unsaved_changes": "you have unsaved changes to your pinned apps. Save them to QDN."
|
||||||
},
|
},
|
||||||
"question": {
|
"question": {
|
||||||
|
"logout": "are you sure you would like to logout?",
|
||||||
"new_user": "are you a new user?"
|
"new_user": "are you a new user?"
|
||||||
},
|
},
|
||||||
"status": {
|
"status": {
|
||||||
@ -205,17 +219,6 @@
|
|||||||
"reset_pinned": "don't like your current local changes? Would you like to reset to the default pinned apps?",
|
"reset_pinned": "don't like your current local changes? Would you like to reset to the default pinned apps?",
|
||||||
"reset_qdn": "don't like your current local changes? Would you like to reset to your saved QDN pinned apps?"
|
"reset_qdn": "don't like your current local changes? Would you like to reset to your saved QDN pinned apps?"
|
||||||
},
|
},
|
||||||
"save_options": {
|
|
||||||
"no_pinned_changes": "you currently do not have any changes to your pinned apps",
|
|
||||||
"overwrite_qdn": "overwrite to QDN",
|
|
||||||
"qdn": "use QDN saving",
|
|
||||||
"register_name": "you need a registered Qortal name to save your pinned apps to QDN.",
|
|
||||||
"revert_default": "revert to default",
|
|
||||||
"revert_qdn": "revert to QDN",
|
|
||||||
"save_qdn": "save to QDN",
|
|
||||||
"settings": "you are using the export/import way of saving settings.",
|
|
||||||
"unsaved_changes": "you have unsaved changes to your pinned apps. Save them to QDN."
|
|
||||||
},
|
|
||||||
"server": "server",
|
"server": "server",
|
||||||
"settings": "settings",
|
"settings": "settings",
|
||||||
"supply": "supply",
|
"supply": "supply",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user