Add new key

This commit is contained in:
Nicola Benaglia 2025-05-25 01:14:24 +02:00
parent a00d0aaadd
commit 56b09c4294
20 changed files with 154 additions and 36 deletions

View File

@ -3422,8 +3422,15 @@ function App() {
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">
{'Important Info'}
<DialogTitle
id="alert-dialog-title"
sx={{
textAlign: 'center',
}}
>
{t('tutorial:important_info', {
postProcess: 'capitalizeAll',
})}
</DialogTitle>
<DialogContent>
@ -3448,18 +3455,45 @@ function App() {
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">
<DialogTitle
id="alert-dialog-title"
sx={{
textAlign: 'center',
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 1,
}}
>
{t('core:action.logout', { postProcess: 'capitalizeAll' })}
</DialogTitle>
<DialogContent>
<DialogContentText id="alert-dialog-description">
<DialogContentText
id="alert-dialog-description"
sx={{
textAlign: 'center',
}}
>
{messageUnsavedChanges.message}
</DialogContentText>
</DialogContent>
<DialogActions>
<Button variant="contained" onClick={onCancelUnsavedChanges}>
<Button
variant="contained"
onClick={onCancelUnsavedChanges}
sx={{
backgroundColor: theme.palette.other.danger,
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 0.7,
'&:hover': {
backgroundColor: theme.palette.other.danger,
color: 'black',
opacity: 1,
},
}}
>
{t('core:action.cancel', {
postProcess: 'capitalizeFirstChar',
})}
@ -3469,6 +3503,17 @@ function App() {
variant="contained"
onClick={onOkUnsavedChanges}
autoFocus
sx={{
backgroundColor: theme.palette.other.positive,
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 0.7,
'&:hover': {
backgroundColor: theme.palette.other.positive,
color: 'black',
opacity: 1,
},
}}
>
{t('core:action.continue_logout', {
postProcess: 'capitalizeFirstChar',

View File

@ -9,7 +9,6 @@ import { useTranslation } from 'react-i18next';
export const AppViewer = forwardRef(
({ app, hide, isDevMode, skipAuth }, iframeRef) => {
// const iframeRef = useRef(null);
const { window: frameWindow } = useFrame();
const { path, history, changeCurrentIndex, resetHistory } =
useQortalMessageListener(
@ -21,9 +20,16 @@ export const AppViewer = forwardRef(
app?.service,
skipAuth
);
const [url, setUrl] = useState('');
const { themeMode } = useThemeContext();
const { i18n, t } = useTranslation(['core']);
const { i18n, t } = useTranslation([
'auth',
'core',
'group',
'question',
'tutorial',
]);
const currentLang = i18n.language;
useEffect(() => {

View File

@ -304,7 +304,20 @@ const PopoverComp = ({
</Typography>
<ImageUploader onPick={(file) => setAvatarFile(file)}>
<Button variant="contained">
<Button
variant="contained"
sx={{
backgroundColor: theme.palette.other.positive,
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 0.7,
'&:hover': {
backgroundColor: theme.palette.other.positive,
color: 'black',
opacity: 1,
},
}}
>
{t('core:action.choose_image', {
postProcess: 'capitalizeFirstChar',
})}
@ -343,6 +356,17 @@ const PopoverComp = ({
disabled={!avatarFile || !myName}
onClick={publishAvatar}
variant="contained"
sx={{
backgroundColor: theme.palette.other.positive,
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 0.7,
'&:hover': {
backgroundColor: theme.palette.other.positive,
color: 'black',
opacity: 1,
},
}}
>
{t('group:action.publish_avatar', {
postProcess: 'capitalizeFirstChar',

View File

@ -666,7 +666,11 @@ export const Group = ({
const getSecretKey = useCallback(
async (loadingGroupParam?: boolean, secretKeyToPublish?: boolean) => {
try {
setIsLoadingGroupMessage('Locating encryption keys');
setIsLoadingGroupMessage(
t('auth:message.generic.locating_encryption_keys', {
postProcess: 'capitalizeFirstChar',
})
);
pauseAllQueues();
let dataFromStorage;
@ -727,7 +731,11 @@ export const Group = ({
if (dataFromStorage) {
data = dataFromStorage;
} else {
setIsLoadingGroupMessage('Downloading encryption keys');
setIsLoadingGroupMessage(
t('auth:message.generic.downloading_encryption_keys', {
postProcess: 'capitalizeFirstChar',
})
);
const res = await fetch(
`${getBaseApiReact()}/arbitrary/DOCUMENT_PRIVATE/${publish.name}/${publish.identifier}?encoding=base64&rebuild=true`
);

View File

@ -299,7 +299,20 @@ const PopoverComp = ({
</Typography>
<ImageUploader onPick={(file) => setAvatarFile(file)}>
<Button variant="contained">
<Button
variant="contained"
sx={{
backgroundColor: theme.palette.other.positive,
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 0.7,
'&:hover': {
backgroundColor: theme.palette.other.positive,
color: 'black',
opacity: 1,
},
}}
>
{t('core:action.choose_image', {
postProcess: 'capitalizeFirstChar',
})}
@ -338,6 +351,17 @@ const PopoverComp = ({
disabled={!avatarFile || !myName}
onClick={publishAvatar}
variant="contained"
sx={{
backgroundColor: theme.palette.other.positive,
color: theme.palette.text.primary,
fontWeight: 'bold',
opacity: 0.7,
'&:hover': {
backgroundColor: theme.palette.other.positive,
color: 'black',
opacity: 1,
},
}}
>
{t('group:action.publish_avatar', {
postProcess: 'capitalizeFirstChar',

View File

@ -1,5 +1,4 @@
//TODO
import { useRef, useState, useCallback, useMemo } from 'react';
interface State {

View File

@ -4,7 +4,7 @@
"3_groups": "3. Qortalgruppen",
"4_obtain_qort": "4. Qort erhalten",
"account_creation": "Kontoerstellung",
"important_info": "Wichtige Informationen!",
"important_info": "Wichtige Informationen",
"apps": {
"dashboard": "1. Apps Dashboard",
"navigation": "2. Apps Navigation"
@ -18,4 +18,4 @@
"see_apps": "Siehe Apps",
"trade_qort": "Handel Qort"
}
}
}

View File

@ -78,14 +78,16 @@
"choose_block": "choose 'block txs' or 'all' to block chat messages",
"congrats_setup": "congrats, youre all set up!",
"decide_block": "decide what to block",
"downloading_encryption_keys": "downloading encryption keys",
"fetching_admin_secret_key": "fetching Admins secret key",
"fetching_group_secret_key": "fetching Group secret key publishes",
"keep_secure": "keep your account file secure",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"locating_encryption_keys": "locating encryption keys",
"name_address": "name or address",
"no_account": "no accounts saved",
"no_minimum_length": "there is no minimum length requirement",
"no_secret_key_published": "no secret key published yet",
"fetching_admin_secret_key": "fetching Admins secret key",
"fetching_group_secret_key": "fetching Group secret key publishes",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"keep_secure": "keep your account file secure",
"publishing_key": "reminder: After publishing the key, it will take a couple of minutes for it to appear. Please just wait.",
"seedphrase_notice": "a <seed>SEEDPHRASE</seed> has been randomly generated in the background.",
"turn_local_node": "please turn on your local node",

View File

@ -4,7 +4,7 @@
"3_groups": "3. Qortal Groups",
"4_obtain_qort": "4. Obtaining Qort",
"account_creation": "account creation",
"important_info": "important information!",
"important_info": "important information",
"apps": {
"dashboard": "1. Apps Dashboard",
"navigation": "2. Apps Navigation"

View File

@ -85,6 +85,7 @@
"fetching_admin_secret_key": "Llave secreta de los administradores de administradores",
"fetching_group_secret_key": "Obtener publicaciones de Key Secret Group Secret",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"locating_encryption_keys": "locating encryption keys",,"downloading_encryption_keys": "downloading encryption keys",
"keep_secure": "Mantenga su archivo de cuenta seguro",
"publishing_key": "Recordatorio: después de publicar la llave, tardará un par de minutos en aparecer. Por favor, solo espera.",
"seedphrase_notice": "a <seed>SEEDPHRASE</seed> has been randomly generated in the background.",

View File

@ -85,6 +85,7 @@
"fetching_admin_secret_key": "Recherche la clé secrète des administrateurs",
"fetching_group_secret_key": "Recherche de clés secrètes de groupe",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"locating_encryption_keys": "locating encryption keys",,"downloading_encryption_keys": "downloading encryption keys",
"keep_secure": "Gardez votre fichier de compte sécurisé",
"publishing_key": "Rappel: Après avoir publié la clé, il faudra quelques minutes pour qu'il apparaisse. Veuillez juste attendre.",
"seedphrase_notice": "a <seed>SEEDPHRASE</seed> has been randomly generated in the background.",

View File

@ -4,7 +4,7 @@
"3_groups": "3. Groupes Qortal",
"4_obtain_qort": "4. Obtention de Qort",
"account_creation": "création de compte",
"important_info": "Informations importantes!",
"important_info": "Informations importantes",
"apps": {
"dashboard": "1. Tableau de bord Apps",
"navigation": "2. Navigation des applications"

View File

@ -78,13 +78,15 @@
"choose_block": "scegli 'Blocca TXS' o 'Tutti' per bloccare i messaggi di chat",
"congrats_setup": "congratulazioni, tutto è stato impostato!",
"decide_block": "decidi cosa bloccare",
"downloading_encryption_keys": "scaricamento chiavi di crittazione",
"name_address": "nome o indirizzo",
"no_account": "nessun account salvato",
"no_minimum_length": "non esiste un requisito di lunghezza minima",
"no_secret_key_published": "nessuna chiave segreta ancora pubblicata",
"fetching_admin_secret_key": "recupero chiave segreta admin",
"fetching_group_secret_key": "recupero chiavi segreta di gruppo pubblicate",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"last_encryption_date": "ultima data di crittazione: {{ date }} eseguito da {{ name }}",
"locating_encryption_keys": "individuazione chiavi di crittazione",
"keep_secure": "mantieni il tuo file account sicuro",
"publishing_key": "attenzione: dopo aver pubblicato la chiave, ci vorranno un paio di minuti per apparire. Attendere, per favore.",
"seedphrase_notice": "È stato generato una <seed>SEED PHRASE</seed> in background.",

View File

@ -4,7 +4,7 @@
"3_groups": "3. Gruppi Qortal",
"4_obtain_qort": "4. Ottenere i Qort",
"account_creation": "creazione dell'account",
"important_info": "informazioni importanti!",
"important_info": "informazioni importanti",
"apps": {
"dashboard": "1. Dashboard di app",
"navigation": "2. Navigazione delle app"

View File

@ -78,14 +78,16 @@
"choose_block": "「ブロックTXS」または「ALL」を選択して、チャットメッセージをブロックします",
"congrats_setup": "おめでとう、あなたはすべてセットアップされています!",
"decide_block": "ブロックするものを決定します",
"downloading_encryption_keys": "downloading encryption keys",
"fetching_admin_secret_key": "管理者の秘密の鍵を取得します",
"fetching_group_secret_key": "Group Secret Keyの出版物を取得します",
"keep_secure": "アカウントファイルを安全に保ちます",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"locating_encryption_keys": "locating encryption keys",
"name_address": "名前または住所",
"no_account": "アカウントは保存されていません",
"no_minimum_length": "最小の長さの要件はありません",
"no_secret_key_published": "まだ公開されていません",
"fetching_admin_secret_key": "管理者の秘密の鍵を取得します",
"fetching_group_secret_key": "Group Secret Keyの出版物を取得します",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"keep_secure": "アカウントファイルを安全に保ちます",
"publishing_key": "リマインダー:キーを公開した後、表示されるまでに数分かかります。待ってください。",
"seedphrase_notice": "a <seed>SEEDPHRASE</seed> has been randomly generated in the background.",
"turn_local_node": "ローカルノードをオンにしてください",

View File

@ -4,7 +4,7 @@
"3_groups": "3。Qortalグループ",
"4_obtain_qort": "4。Qortの取得",
"account_creation": "アカウント作成",
"important_info": "重要な情報",
"important_info": "重要な情報",
"apps": {
"dashboard": "1。アプリダッシュボード",
"navigation": "2。アプリナビゲーション"
@ -18,4 +18,4 @@
"see_apps": "アプリを参照してください",
"trade_qort": "取引Qort"
}
}
}

View File

@ -78,14 +78,16 @@
"choose_block": "Выберите «Блок TXS» или «Все», чтобы заблокировать сообщения чата",
"congrats_setup": "Поздравляю, вы все настроены!",
"decide_block": "Решите, что заблокировать",
"downloading_encryption_keys": "downloading encryption keys",
"fetching_admin_secret_key": "Принесение секретного ключа администраторов",
"fetching_group_secret_key": "Выбрать группу Secret Key публикует",
"keep_secure": "Держите файл вашей учетной записи в безопасности",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"locating_encryption_keys": "locating encryption keys",
"name_address": "имя или адрес",
"no_account": "Никаких счетов не сохранились",
"no_minimum_length": "нет требований к минимальной длине",
"no_secret_key_published": "пока не публикуется секретный ключ",
"fetching_admin_secret_key": "Принесение секретного ключа администраторов",
"fetching_group_secret_key": "Выбрать группу Secret Key публикует",
"last_encryption_date": "last encryption date: {{ date }} by {{ name }}",
"keep_secure": "Держите файл вашей учетной записи в безопасности",
"publishing_key": "Напоминание: после публикации ключа потребуется пару минут, чтобы появиться. Пожалуйста, просто подождите.",
"seedphrase_notice": "a <seed>SEEDPHRASE</seed> has been randomly generated in the background.",
"turn_local_node": "Пожалуйста, включите свой местный узел",

View File

@ -4,7 +4,7 @@
"3_groups": "3. Qortal Groups",
"4_obtain_qort": "4. Получение qort",
"account_creation": "создание счета",
"important_info": "Важная информация!",
"important_info": "Важная информация",
"apps": {
"dashboard": "1. Приложения приборной панели",
"navigation": "2. Приложения навигации"

View File

@ -78,13 +78,15 @@
"choose_block": "选择“块TXS”或“所有”来阻止聊天消息",
"congrats_setup": "恭喜,你们都设置了!",
"decide_block": "决定阻止什么",
"downloading_encryption_keys": "下载加密密钥",
"name_address": "名称或地址",
"no_account": "没有保存帐户",
"no_minimum_length": "没有最小长度要求",
"no_secret_key_published": "尚未发布秘密密钥",
"fetching_admin_secret_key": "获取管理员秘密钥匙",
"fetching_group_secret_key": "获取组秘密密钥发布",
"last_encryption_date": "最后加密日期:{{date}}by{{name}}",
"last_encryption_date": "最后加密日期:{{date}}由{{name}}",
"locating_encryption_keys": "查找加密密钥",
"keep_secure": "确保您的帐户文件安全",
"publishing_key": "提醒:发布钥匙后,出现需要几分钟才能出现。请等待。",
"seedphrase_notice": "在后台随机生成了一个<seed>种子短语</seed>。",

View File

@ -4,7 +4,7 @@
"3_groups": "3。Qortal组",
"4_obtain_qort": "4。获取Qort",
"account_creation": "帐户创建",
"important_info": "重要信息",
"important_info": "重要信息",
"apps": {
"dashboard": "1。应用仪表板",
"navigation": "2。应用导航"
@ -18,4 +18,4 @@
"see_apps": "请参阅应用程序",
"trade_qort": "贸易Qort"
}
}
}