Add translations

This commit is contained in:
Nicola Benaglia 2025-06-21 16:18:20 +02:00
parent 7ae9bd1dae
commit 1f2e03711c
10 changed files with 198 additions and 29 deletions

View File

@ -629,7 +629,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
}}
>
<Tab
label="Minting Details" // TODO translate
label={t('core:minting.details', {
postProcess: 'capitalizeAll',
})}
sx={{
'&.Mui-selected': {
color: theme.palette.text.primary,
@ -639,7 +641,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
{...a11yProps(0)}
/>
<Tab
label="Minting Actions"
label={t('core:minting.actions', {
postProcess: 'capitalizeAll',
})}
sx={{
'&.Mui-selected': {
color: theme.palette.text.primary,
@ -677,9 +681,11 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
<Typography
variant="h3"
gutterBottom
sx={{ textAlign: 'center' }} // TODO translate
sx={{ textAlign: 'center' }}
>
Blockchain Statistics
{t('core:minting.blockchain_statistics', {
postProcess: 'capitalizeFirstChar',
})}
</Typography>
<Grid
@ -689,7 +695,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
justifyContent="center"
>
<StatCard
label="Average Qortal Blocktime"
label={t('core:minting.average_blocktime', {
postProcess: 'capitalizeFirstChar',
})}
value={averageBlockTime(
adminInfo,
nodeHeightBlock
@ -697,7 +705,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
/>
<StatCard
label="Average Blocks Per Day"
label={t('core:minting.average_blocks_per_day', {
postProcess: 'capitalizeFirstChar',
})}
value={averageBlockDay(
adminInfo,
nodeHeightBlock
@ -705,7 +715,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
/>
<StatCard
label="Average Created QORT Per Day"
label={t('core:minting.average_created_qorts_per_day', {
postProcess: 'capitalizeFirstChar',
})}
value={dayReward(
adminInfo,
nodeHeightBlock,
@ -730,7 +742,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
gutterBottom
sx={{ textAlign: 'center' }}
>
Minting Account Details
{t('core:minting.account_details', {
postProcess: 'capitalizeFirstChar',
})}
</Typography>
<Grid
@ -740,15 +754,21 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
justifyContent="center"
>
<StatCard
label="Current Status"
label={t('core:minting.current_status', {
postProcess: 'capitalizeFirstChar',
})}
value={mintingStatus(nodeStatus)}
/>
<StatCard
label="Current Level"
label={t('core:minting.current_level', {
postProcess: 'capitalizeFirstChar',
})}
value={accountInfo?.level}
/>
<StatCard
label="Blocks To Next Level"
label={t('core:minting.blocks_next_level', {
postProcess: 'capitalizeFirstChar',
})}
value={
levelUpBlocks(accountInfo, nodeStatus).toFixed(0) || ''
}
@ -759,7 +779,7 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
<Paper elevation={5}>
<Typography sx={{ textAlign: 'center' }}>
<Trans
i18nKey="message.generic.minting.next_level"
i18nKey="minting.next_level"
ns="core"
components={{
strong: <strong />,
@ -789,7 +809,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
gutterBottom
sx={{ textAlign: 'center' }}
>
Minting Rewards Info
{t('core:minting.rewards_info', {
postProcess: 'capitalizeFirstChar',
})}
</Typography>
<Grid
@ -799,11 +821,15 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
justifyContent="center"
>
<StatCard
label="Current Tier"
label={t('core:minting.current_tier', {
postProcess: 'capitalizeFirstChar',
})}
value={currentTier(accountInfo?.level) || ''}
/>
<StatCard
label="Total Minters in The Tier"
label={t('core:minting.total_minter_in_tier', {
postProcess: 'capitalizeFirstChar',
})}
value={
countMintersInLevel(
accountInfo?.level,
@ -813,13 +839,17 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
}
/>
<StatCard
label="Tier Share Per Block"
label={t('core:minting.tier_share_per_block', {
postProcess: 'capitalizeFirstChar',
})}
value={
tierPercent(accountInfo, tier4Online)?.toFixed(0) + ' %'
}
/>
<StatCard
label="Estimated Reward Per Block"
label={t('core:minting.reward_per_block', {
postProcess: 'capitalizeFirstChar',
})}
value={
countReward(
accountInfo,
@ -830,7 +860,9 @@ export const Minting = ({ setIsOpenMinting, myAddress, show }) => {
}
/>
<StatCard
label="Estimated Reward Per Day"
label={t('core:minting.reward_per_day', {
postProcess: 'capitalizeFirstChar',
})}
value={
countRewardDay(
accountInfo,

View File

@ -4,6 +4,7 @@ import { Box, Tooltip, Typography, useTheme } from '@mui/material';
import { BarSpinner } from '../common/Spinners/BarSpinner/BarSpinner';
import { formatDate } from '../utils/time';
import { useTranslation } from 'react-i18next';
import i18next from 'i18next';
function getAverageLtcPerQort(trades) {
let totalQort = 0;
@ -31,12 +32,13 @@ function getTwoWeeksAgoTimestamp() {
}
function formatWithCommasAndDecimals(number) {
return Number(number).toLocaleString();
const locale = i18next.language;
return Number(number).toLocaleString(locale);
}
export const QortPrice = () => {
const [ltcPerQort, setLtcPerQort] = useState(null);
const [supply, setSupply] = useState(null);
const [supply, setSupply] = useState<string>('');
const [lastBlock, setLastBlock] = useState(null);
const [loading, setLoading] = useState(true);
const { t } = useTranslation(['core', 'tutorial']);

View File

@ -314,6 +314,21 @@
}
},
"minting": {
"account_details": "Minting-Kontodetails",
"actions": "Minting-Aktionen",
"average_blocktime": "durchschnittliche Qortal-Blockzeit",
"average_blocks_per_day": "durchschnittliche Blöcke pro Tag",
"average_created_qorts_per_day": "durchschnittlich erstellte QORTs pro Tag",
"blockchain_statistics": "Blockchain-Statistiken",
"blocks_next_level": "Blöcke bis zum nächsten Level",
"current_level": "aktuelles Level",
"current_status": "aktueller Status",
"current_tier": "aktuelle Stufe",
"details": "Minting-Details",
"next_level": "Mit 24/7-Minting erreichst du <strong>Level {{ level }}</strong> in <strong>{{ count }} Tagen</strong>",
"rewards_info": "Informationen zu Minting-Belohnungen",
"reward_per_block": "geschätzte Belohnung pro Block",
"reward_per_day": "geschätzte Belohnung pro Tag",
"status": {
"minting": "(Prägung)",
"not_minting": "(nicht punktieren)",
@ -321,7 +336,9 @@
"synchronized": "synchronisiert",
"synchronizing": "Synchronisierung..."
},
"status_title": "Münzstatus"
"status_title": "Münzstatus",
"tier_share_per_block": "Stufenanteil pro Block",
"total_minter_in_tier": "Gesamtanzahl der Minter in dieser Stufe"
},
"name": "Name",
"name_app": "Name/App",

View File

@ -316,7 +316,21 @@
}
},
"minting": {
"account_details": "minting account details",
"actions": "minting actions",
"average_blocktime": "average qortal blocktime",
"average_blocks_per_day": "average blocks per day",
"average_created_qorts_per_day": "average created QORT per day",
"blockchain_statistics": "blockchain statistics",
"blocks_next_level": "blocks to nexl level",
"current_level": "current level",
"current_status": "current status",
"current_tier": "current tier",
"details": "minting details",
"next_level": "with a 24/7 minting you will reach <strong>level {{ level }}</strong> in <strong>{{ count }} days</strong>",
"rewards_info": "minting rewards info",
"reward_per_block": "estimated reward per block",
"reward_per_day": "estimated reward per day",
"status": {
"minting": "(minting)",
"not_minting": "(not minting)",
@ -324,7 +338,9 @@
"synchronized": "synchronized",
"synchronizing": "synchronizing..."
},
"status_title": "minting status"
"status_title": "minting status",
"tier_share_per_block": "tier share per block",
"total_minter_in_tier": "total minters in the tier"
},
"name": "name",
"name_app": "name/App",

View File

@ -315,6 +315,21 @@
}
},
"minting": {
"account_details": "detalles de la cuenta de minting",
"actions": "acciones de minting",
"average_blocktime": "tiempo promedio por bloque de Qortal",
"average_blocks_per_day": "promedio de bloques por día",
"average_created_qorts_per_day": "promedio de QORT creados por día",
"blockchain_statistics": "estadísticas de la blockchain",
"blocks_next_level": "bloques para el siguiente nivel",
"current_level": "nivel actual",
"current_status": "estado actual",
"current_tier": "nivel actual",
"details": "detalles de minting",
"next_level": "Con minting 24/7 alcanzarás el <strong>nivel {{ level }}</strong> en <strong>{{ count }} días</strong>",
"rewards_info": "información sobre recompensas de minting",
"reward_per_block": "recompensa estimada por bloque",
"reward_per_day": "recompensa estimada por día",
"status": {
"minting": "(acuñado)",
"not_minting": "(no acuñar)",
@ -322,7 +337,9 @@
"synchronized": "sincronizado",
"synchronizing": "sincronización..."
},
"status_title": "estado de acuñación"
"status_title": "estado de acuñación",
"tier_share_per_block": "porción del nivel por bloque",
"total_minter_in_tier": "total de minters en el nivel"
},
"name": "nombre",
"name_app": "nombre/aplicación",

View File

@ -315,14 +315,31 @@
}
},
"minting": {
"account_details": "détails du compte de minting",
"actions": "actions de minting",
"average_blocktime": "temps moyen par bloc Qortal",
"average_blocks_per_day": "blocs moyens par jour",
"average_created_qorts_per_day": "QORT créés en moyenne par jour",
"blockchain_statistics": "statistiques de la blockchain",
"blocks_next_level": "blocs jusqu'au niveau suivant",
"current_level": "niveau actuel",
"current_status": "statut actuel",
"current_tier": "niveau actuel",
"details": "détails du minting",
"next_level": "Avec un minting 24/7, vous atteindrez le <strong>niveau {{ level }}</strong> en <strong>{{ count }} jours</strong>",
"rewards_info": "informations sur les récompenses de minting",
"reward_per_block": "récompense estimée par bloc",
"reward_per_day": "récompense estimée par jour",
"status": {
"minting": "(Coupure)",
"minting": "(Frappe)",
"not_minting": "(pas de la frappe)",
"no_status": "pas de statut",
"synchronized": "synchronisé",
"synchronizing": "synchronisation..."
},
"status_title": "statut de frappe"
"status_title": "statut de frappe",
"tier_share_per_block": "part du niveau par bloc",
"total_minter_in_tier": "nombre total de minters dans ce niveau"
},
"name": "nom",
"name_app": "nom / application",

View File

@ -314,6 +314,21 @@
}
},
"minting": {
"account_details": "dettagli dell'account di minting",
"actions": "azioni sul minting",
"average_blocktime": "tempo medio per blocco di Qortal",
"average_blocks_per_day": "blocchi medi al giorno",
"average_created_qorts_per_day": "QORT medi creati al giorno",
"blockchain_statistics": "statistiche della blockchain",
"blocks_next_level": "blocchi al prossimo livello",
"current_level": "livello attuale",
"current_status": "stato attuale",
"current_tier": "fascia attuale",
"details": "dettagli sul minting",
"next_level": "Con un minting 24/7 raggiungerai il <strong>livello {{ level }}</strong> in <strong>{{ count }} giorni</strong>",
"rewards_info": "informazioni sulle ricompense del minting",
"reward_per_block": "ricompensa stimata per blocco",
"reward_per_day": "ricompensa stimata al giorno",
"status": {
"minting": "(minting)",
"not_minting": "(non minting)",
@ -321,7 +336,9 @@
"synchronized": "sincronizzato",
"synchronizing": "sincronizzazione..."
},
"status_title": "stato minting"
"status_title": "stato minting",
"tier_share_per_block": "quota della fascia per blocco",
"total_minter_in_tier": "minter totali in questa fascia"
},
"name": "nome",
"name_app": "nome/app",

View File

@ -315,6 +315,21 @@
}
},
"minting": {
"account_details": "ミンティングアカウントの詳細",
"actions": "ミンティングアクション",
"average_blocktime": "Qortalの平均ブロック時間",
"average_blocks_per_day": "1日あたりの平均ブロック数",
"average_created_qorts_per_day": "1日あたりに作成された平均QORT数",
"blockchain_statistics": "ブロックチェーン統計",
"blocks_next_level": "次のレベルまでのブロック数",
"current_level": "現在のレベル",
"current_status": "現在のステータス",
"current_tier": "現在のティア",
"details": "ミンティングの詳細",
"next_level": "24時間年中無休のミンティングで、<strong>{{ count }}日</strong>以内に<strong>レベル{{ level }}</strong>に到達します",
"rewards_info": "ミンティング報酬情報",
"reward_per_block": "ブロックごとの推定報酬",
"reward_per_day": "1日あたりの推定報酬",
"status": {
"minting": "(鋳造)",
"not_minting": "(造りではありません)",
@ -322,7 +337,9 @@
"synchronized": "同期",
"synchronizing": "同期..."
},
"status_title": "ミントステータス"
"status_title": "ミントステータス",
"tier_share_per_block": "ブロックごとのティアシェア",
"total_minter_in_tier": "このティアの合計ミンター数"
},
"name": "名前",
"name_app": "名前/アプリ",

View File

@ -315,6 +315,21 @@
}
},
"minting": {
"account_details": "детали аккаунта майнинга",
"actions": "действия по майнингу",
"average_blocktime": "среднее время блока Qortal",
"average_blocks_per_day": "среднее количество блоков в день",
"average_created_qorts_per_day": "среднее количество создаваемых QORT в день",
"blockchain_statistics": "статистика блокчейна",
"blocks_next_level": "блоков до следующего уровня",
"current_level": "текущий уровень",
"current_status": "текущий статус",
"current_tier": "текущий уровень (tier)",
"details": "детали майнинга",
"next_level": "При майнинге 24/7 вы достигнете <strong>{{ level }} уровня</strong> за <strong>{{ count }} дней</strong>",
"rewards_info": "информация о наградах за майнинг",
"reward_per_block": "предполагаемая награда за блок",
"reward_per_day": "предполагаемая награда в день",
"status": {
"minting": "(добыча)",
"not_minting": "(не шахта)",
@ -322,7 +337,9 @@
"synchronized": "синхронизированный",
"synchronizing": "синхронизация..."
},
"status_title": "Статус майтинга"
"status_title": "Статус майтинга",
"tier_share_per_block": "доля уровня за блок",
"total_minter_in_tier": "всего майнеров на этом уровне"
},
"name": "имя",
"name_app": "имя/приложение",

View File

@ -315,6 +315,21 @@
}
},
"minting": {
"account_details": "铸造账户详情",
"actions": "铸造操作",
"average_blocktime": "Qortal平均区块时间",
"average_blocks_per_day": "每日平均区块数",
"average_created_qorts_per_day": "每日平均生成的QORT数量",
"blockchain_statistics": "区块链统计",
"blocks_next_level": "距离下一级的区块数",
"current_level": "当前等级",
"current_status": "当前状态",
"current_tier": "当前等级层级",
"details": "铸造详情",
"next_level": "全天候铸造将使你在<strong>{{ count }}天</strong>内达到<strong>{{ level }}级</strong>",
"rewards_info": "铸造奖励信息",
"reward_per_block": "每个区块的预计奖励",
"reward_per_day": "每日预计奖励",
"status": {
"minting": "(铸造)",
"not_minting": "(不是铸造)",
@ -322,7 +337,9 @@
"synchronized": "同步",
"synchronizing": "同步..."
},
"status_title": "铸造状态"
"status_title": "铸造状态",
"tier_share_per_block": "每个区块的等级份额",
"total_minter_in_tier": "该等级层级中的总铸造者数"
},
"name": "姓名",
"name_app": "名称/应用",