@@ -374,133 +374,156 @@ export const PORTUGUESE_BR = {
374374 } ,
375375} ;
376376
377- export default async function setupTranslation ( language ) {
377+ const elementIdMappings = {
378+ topbar : {
379+ network : "topbar-network" ,
380+ balance : "topbar-balance" ,
381+ } ,
382+ nav : {
383+ home : "nav-home" ,
384+ send : "nav-send" ,
385+ earn : "nav-earn" ,
386+ interop : "nav-interop" ,
387+ activity : "nav-activity" ,
388+ } ,
389+ home : {
390+ getStarted : "home-get-started" ,
391+ setupWallet : "home-setup-wallet" ,
392+ createKey : "home-create-key" ,
393+ userName : "home-user-name" ,
394+ createPasskeyBtn : "createPasskeyBtn" ,
395+ keyCreated : "home-key-created" ,
396+ credentialID : "home-credential-id" ,
397+ resetPasskeyBtn : "resetPasskeyBtn" ,
398+ activateWallet : "home-activate-wallet" ,
399+ deployWallet : "home-deploy-wallet" ,
400+ deployAccountBtn : "deployAccountBtn" ,
401+ walletActivated : "home-wallet-activated" ,
402+ walletAddress : [ "home-wallet-address" , "home-wallet-address-2" ] ,
403+ refreshBalanceBtn : "refreshBalanceBtn" ,
404+ walletBalance : "home-wallet-balance" ,
405+ yourWallet : "home-your-wallet" ,
406+ resetPasskeyMainBtn : "resetPasskeyMainBtn" ,
407+ quickActions : "home-quick-actions" ,
408+ quickSendBtn : "quickSendBtn" ,
409+ quickEarnBtn : "quickEarnBtn" ,
410+ faucetBtn : "faucetBtn" ,
411+ } ,
412+ send : {
413+ sendMoney : "send-money" ,
414+ recipientAddress : "send-recipient" ,
415+ amount : "send-amount" ,
416+ transferBtn : "transferBtn" ,
417+ txSent : "send-tx-sent" ,
418+ txLabel : "send-tx-label" ,
419+ } ,
420+ earn : {
421+ title : "earn-title" ,
422+ subtitle : "earn-subtitle" ,
423+ shadowAccount : "earn-shadow" ,
424+ deposits : "earn-deposits" ,
425+ refreshBtn : "refreshAaveBalanceBtn" ,
426+ depositLabel : "earn-deposit-label" ,
427+ depositAmount : "earn-deposit-amount" ,
428+ depositBtn : "aaveDepositBtn" ,
429+ depositInit : "earn-deposit-init" ,
430+ depositTx : "earn-deposit-tx" ,
431+ depositWaitMsg : "earn-deposit-wait-msg" ,
432+ withdrawLabel : "earn-withdraw-label" ,
433+ withdrawAmount : "earn-withdraw-amount" ,
434+ withdrawBtn : "aaveWithdrawBtn" ,
435+ withdrawInit : "earn-withdraw-init" ,
436+ withdrawTx : "earn-withdraw-tx" ,
437+ withdrawWaitMsg : "earn-withdraw-wait-msg" ,
438+ } ,
439+ interop : {
440+ title : "interop-title" ,
441+ subtitle : "interop-subtitle" ,
442+ noteLabel : "interop-note-label" ,
443+ note : "interop-note" ,
444+ setupWarning : "interop-setup-warning" ,
445+ setupMsg : "interop-setup-msg" ,
446+ chainA : "interop-chain-a" ,
447+ chainB : "interop-chain-b" ,
448+ connectionIssue : "interop-connection-issue" ,
449+ connectionMsg : "interop-connection-msg" ,
450+ conectionCheck1 : "interop-connection-check-1" ,
451+ conectionCheck2 : "interop-connection-check-2" ,
452+ sendMsgLabel : "interop-send-msg-label" ,
453+ msgLabel : "interop-msg-label" ,
454+ msgDirection : "interop-msg-direction" ,
455+ aToB : "interop-a-to-b" ,
456+ bToA : "interop-b-to-a" ,
457+ sendMsgBtn : "interopSendBtn" ,
458+ msgProgressTitle : "interopProgressTitle" ,
459+ msgVerified : "interop-msg-verified" ,
460+ srcChainTx : "interop-src-chain-tx" ,
461+ l1Batch : "interop-l1-batch" ,
462+ msgIndex : "interop-msg-index" ,
463+ msgFinalDirection : "interop-msg-final-direction" ,
464+ msgVerifiedOnDestination : "interop-msg-verified-on-dest" ,
465+ msgSuccess : "interop-msg-success" ,
466+ tokenTransferTitle : "interop-token-transfer-title" ,
467+ tokenTransferSubtitle : "interop-token-transfer-subtitle" ,
468+ tokenLabel : "interop-token-label" ,
469+ tokenAddress : "interop-token-address" ,
470+ chainABalance : "interop-chain-a-balance" ,
471+ chainBBalance : "interop-chain-b-balance" ,
472+ refreshTokenBalanceBtn : "refreshTokenBalancesBtn" ,
473+ tokenTransferAmount : "interop-token-transfer-amount" ,
474+ transferDirection : "interop-transfer-direction" ,
475+ transferTokenAToB : "interop-transfer-token-a-to-b" ,
476+ transferTokenBToA : "interop-transfer-token-b-to-a" ,
477+ transferBtn : "tokenTransferBtn" ,
478+ transferProgressTitle : "tokenTransferProgressTitle" ,
479+ transferComplete : "interop-transfer-complete" ,
480+ statusSrcChainTx : "interop-status-src-chain-tx" ,
481+ destinationChainTx : "interop-destination-chain-tx" ,
482+ statusAmount : "interop-status-amount" ,
483+ statusDirection : "interop-status-direction" ,
484+ } ,
485+ activity : {
486+ title : "activity-title" ,
487+ subtitle : "activity-subtitle" ,
488+ noTxns : "activity-no-txns" ,
489+ } ,
490+ footer : {
491+ network : "footer-network" ,
492+ poweredByZk : "footer-powered-by-zk" ,
493+ securedByPasskeys : "footer-secured-by-passkeys" ,
494+ } ,
495+ } ;
496+
497+ export async function initTranslation ( language ) {
378498 await i18next . init ( {
379499 lng : language ,
380500 debug : true ,
381- fallback : "en" ,
501+ fallbackLng : "en" ,
382502 resources : {
383503 en : ENGLISH ,
384504 es : SPANISH ,
385505 pt : PORTUGUESE_BR ,
386506 } ,
387507 } ) ;
388508
389- // TOP BAR
390- document . getElementById ( "topbar-network" ) . innerHTML = i18next . t ( "topbar.network" ) ;
391- document . getElementById ( "topbar-balance" ) . innerHTML = i18next . t ( "topbar.balance" ) ;
392-
393- // NAVIGATION
394- document . getElementById ( "nav-home" ) . innerHTML = i18next . t ( "nav.home" ) ;
395- document . getElementById ( "nav-send" ) . innerHTML = i18next . t ( "nav.send" ) ;
396- document . getElementById ( "nav-earn" ) . innerHTML = i18next . t ( "nav.earn" ) ;
397- document . getElementById ( "nav-interop" ) . innerHTML = i18next . t ( "nav.interop" ) ;
398- document . getElementById ( "nav-activity" ) . innerHTML = i18next . t ( "nav.activity" ) ;
399-
400- // HOME TAB
401- document . getElementById ( "home-get-started" ) . innerHTML = i18next . t ( "home.getStarted" ) ;
402- document . getElementById ( "home-setup-wallet" ) . innerHTML = i18next . t ( "home.setupWallet" ) ;
403- document . getElementById ( "home-create-key" ) . innerHTML = i18next . t ( "home.createKey" ) ;
404- document . getElementById ( "home-user-name" ) . innerHTML = i18next . t ( "home.userName" ) ;
405- document . getElementById ( "createPasskeyBtn" ) . innerHTML = i18next . t ( "home.createPasskeyBtn" ) ;
406- document . getElementById ( "home-key-created" ) . innerHTML = i18next . t ( "home.keyCreated" ) ;
407- document . getElementById ( "home-credential-id" ) . innerHTML = i18next . t ( "home.credentialID" ) ;
408- document . getElementById ( "resetPasskeyBtn" ) . innerHTML = i18next . t ( "home.resetPasskeyBtn" ) ;
409- document . getElementById ( "home-activate-wallet" ) . innerHTML = i18next . t ( "home.activateWallet" ) ;
410- document . getElementById ( "home-deploy-wallet" ) . innerHTML = i18next . t ( "home.deployWallet" ) ;
411- document . getElementById ( "deployAccountBtn" ) . innerHTML = i18next . t ( "home.deployAccountBtn" ) ;
412- document . getElementById ( "home-wallet-activated" ) . innerHTML = i18next . t ( "home.walletActivated" ) ;
413- document . getElementById ( "home-wallet-address" ) . innerHTML = i18next . t ( "home.walletAddress" ) ;
414- document . getElementById ( "refreshBalanceBtn" ) . innerHTML = i18next . t ( "home.refreshBalanceBtn" ) ;
415- document . getElementById ( "home-wallet-balance" ) . innerHTML = i18next . t ( "home.walletBalance" ) ;
416- document . getElementById ( "home-your-wallet" ) . innerHTML = i18next . t ( "home.yourWallet" ) ;
417- document . getElementById ( "home-wallet-address-2" ) . innerHTML = i18next . t ( "home.walletAddress" ) ;
418- document . getElementById ( "resetPasskeyMainBtn" ) . innerHTML = i18next . t ( "home.resetPasskeyMainBtn" ) ;
419- document . getElementById ( "home-quick-actions" ) . innerHTML = i18next . t ( "home.quickActions" ) ;
420- document . getElementById ( "quickSendBtn" ) . innerHTML = i18next . t ( "home.quickSendBtn" ) ;
421- document . getElementById ( "quickEarnBtn" ) . innerHTML = i18next . t ( "home.quickEarnBtn" ) ;
422- document . getElementById ( "faucetBtn" ) . innerHTML = i18next . t ( "home.faucetBtn" ) ;
423-
424- // SEND TAB
425- document . getElementById ( "send-money" ) . innerHTML = i18next . t ( "send.sendMoney" ) ;
426- document . getElementById ( "send-recipient" ) . innerHTML = i18next . t ( "send.recipientAddress" ) ;
427- document . getElementById ( "send-amount" ) . innerHTML = i18next . t ( "send.amount" ) ;
428- document . getElementById ( "transferBtn" ) . innerHTML = i18next . t ( "send.transferBtn" ) ;
429- document . getElementById ( "send-tx-sent" ) . innerHTML = i18next . t ( "send.txSent" ) ;
430- document . getElementById ( "send-tx-label" ) . innerHTML = i18next . t ( "send.txLabel" ) ;
431-
432- // EARN TAB
433- document . getElementById ( "earn-title" ) . innerHTML = i18next . t ( "earn.title" ) ;
434- document . getElementById ( "earn-subtitle" ) . innerHTML = i18next . t ( "earn.subtitle" ) ;
435- document . getElementById ( "earn-shadow" ) . innerHTML = i18next . t ( "earn.shadowAccount" ) ;
436- document . getElementById ( "earn-deposits" ) . innerHTML = i18next . t ( "earn.deposits" ) ;
437- document . getElementById ( "refreshAaveBalanceBtn" ) . innerHTML = i18next . t ( "earn.refreshBtn" ) ;
438- document . getElementById ( "earn-deposit-label" ) . innerHTML = i18next . t ( "earn.depositLabel" ) ;
439- document . getElementById ( "earn-deposit-amount" ) . innerHTML = i18next . t ( "earn.depositAmount" ) ;
440- document . getElementById ( "aaveDepositBtn" ) . innerHTML = i18next . t ( "earn.depositBtn" ) ;
441- document . getElementById ( "earn-deposit-init" ) . innerHTML = i18next . t ( "earn.depositInit" ) ;
442- document . getElementById ( "earn-deposit-tx" ) . innerHTML = i18next . t ( "earn.depositTx" ) ;
443- document . getElementById ( "earn-deposit-wait-msg" ) . innerHTML = i18next . t ( "earn.depositWaitMsg" ) ;
444- document . getElementById ( "earn-withdraw-label" ) . innerHTML = i18next . t ( "earn.withdrawLabel" ) ;
445- document . getElementById ( "earn-withdraw-amount" ) . innerHTML = i18next . t ( "earn.withdrawAmount" ) ;
446- document . getElementById ( "aaveWithdrawBtn" ) . innerHTML = i18next . t ( "earn.withdrawBtn" ) ;
447- document . getElementById ( "earn-withdraw-init" ) . innerHTML = i18next . t ( "earn.withdrawInit" ) ;
448- document . getElementById ( "earn-withdraw-tx" ) . innerHTML = i18next . t ( "earn.withdrawTx" ) ;
449- document . getElementById ( "earn-withdraw-wait-msg" ) . innerHTML = i18next . t ( "earn.withdrawWaitMsg" ) ;
450-
451- // INTEROP TAB
452- document . getElementById ( "interop-title" ) . innerHTML = i18next . t ( "interop.title" ) ;
453- document . getElementById ( "interop-subtitle" ) . innerHTML = i18next . t ( "interop.subtitle" ) ;
454- document . getElementById ( "interop-note-label" ) . innerHTML = i18next . t ( "interop.noteLabel" ) ;
455- document . getElementById ( "interop-note" ) . innerHTML = i18next . t ( "interop.note" ) ;
456- document . getElementById ( "interop-setup-warning" ) . innerHTML = i18next . t ( "interop.setupWarning" ) ;
457- document . getElementById ( "interop-setup-msg" ) . innerHTML = i18next . t ( "interop.setupMsg" ) ;
458- document . getElementById ( "interop-chain-a" ) . innerHTML = i18next . t ( "interop.chainA" ) ;
459- document . getElementById ( "interop-chain-b" ) . innerHTML = i18next . t ( "interop.chainB" ) ;
460- document . getElementById ( "interop-connection-issue" ) . innerHTML = i18next . t ( "interop.connectionIssue" ) ;
461- document . getElementById ( "interop-connection-msg" ) . innerHTML = i18next . t ( "interop.connectionMsg" ) ;
462- document . getElementById ( "interop-connection-check-1" ) . innerHTML = i18next . t ( "interop.conectionCheck1" ) ;
463- document . getElementById ( "interop-connection-check-2" ) . innerHTML = i18next . t ( "interop.conectionCheck2" ) ;
464- document . getElementById ( "interop-send-msg-label" ) . innerHTML = i18next . t ( "interop.sendMsgLabel" ) ;
465- document . getElementById ( "interop-msg-label" ) . innerHTML = i18next . t ( "interop.msgLabel" ) ;
466- document . getElementById ( "interop-msg-direction" ) . innerHTML = i18next . t ( "interop.msgDirection" ) ;
467- document . getElementById ( "interop-a-to-b" ) . innerHTML = i18next . t ( "interop.aToB" ) ;
468- document . getElementById ( "interop-b-to-a" ) . innerHTML = i18next . t ( "interop.bToA" ) ;
469- document . getElementById ( "interopSendBtn" ) . innerHTML = i18next . t ( "interop.sendMsgBtn" ) ;
470- document . getElementById ( "interopProgressTitle" ) . innerHTML = i18next . t ( "interop.msgProgressTitle" ) ;
471- document . getElementById ( "interop-msg-verified" ) . innerHTML = i18next . t ( "interop.msgVerified" ) ;
472- document . getElementById ( "interop-src-chain-tx" ) . innerHTML = i18next . t ( "interop.srcChainTx" ) ;
473- document . getElementById ( "interop-l1-batch" ) . innerHTML = i18next . t ( "interop.l1Batch" ) ;
474- document . getElementById ( "interop-msg-index" ) . innerHTML = i18next . t ( "interop.msgIndex" ) ;
475- document . getElementById ( "interop-msg-final-direction" ) . innerHTML = i18next . t ( "interop.msgFinalDirection" ) ;
476- document . getElementById ( "interop-msg-verified-on-dest" ) . innerHTML = i18next . t ( "interop.msgVerifiedOnDestination" ) ;
477- document . getElementById ( "interop-msg-success" ) . innerHTML = i18next . t ( "interop.msgSuccess" ) ;
478- document . getElementById ( "interop-token-transfer-title" ) . innerHTML = i18next . t ( "interop.tokenTransferTitle" ) ;
479- document . getElementById ( "interop-token-transfer-subtitle" ) . innerHTML = i18next . t ( "interop.tokenTransferSubtitle" ) ;
480- document . getElementById ( "interop-token-label" ) . innerHTML = i18next . t ( "interop.tokenLabel" ) ;
481- document . getElementById ( "interop-token-address" ) . innerHTML = i18next . t ( "interop.tokenAddress" ) ;
482- document . getElementById ( "interop-chain-a-balance" ) . innerHTML = i18next . t ( "interop.chainABalance" ) ;
483- document . getElementById ( "interop-chain-b-balance" ) . innerHTML = i18next . t ( "interop.chainBBalance" ) ;
484- document . getElementById ( "refreshTokenBalancesBtn" ) . innerHTML = i18next . t ( "interop.refreshTokenBalanceBtn" ) ;
485- document . getElementById ( "interop-token-transfer-amount" ) . innerHTML = i18next . t ( "interop.tokenTransferAmount" ) ;
486- document . getElementById ( "interop-transfer-direction" ) . innerHTML = i18next . t ( "interop.transferDirection" ) ;
487- document . getElementById ( "interop-transfer-token-a-to-b" ) . innerHTML = i18next . t ( "interop.transferTokenAToB" ) ;
488- document . getElementById ( "interop-transfer-token-b-to-a" ) . innerHTML = i18next . t ( "interop.transferTokenBToA" ) ;
489- document . getElementById ( "tokenTransferBtn" ) . innerHTML = i18next . t ( "interop.transferBtn" ) ;
490- document . getElementById ( "tokenTransferProgressTitle" ) . innerHTML = i18next . t ( "interop.transferProgressTitle" ) ;
491- document . getElementById ( "interop-transfer-complete" ) . innerHTML = i18next . t ( "interop.transferComplete" ) ;
492- document . getElementById ( "interop-status-src-chain-tx" ) . innerHTML = i18next . t ( "interop.statusSrcChainTx" ) ;
493- document . getElementById ( "interop-destination-chain-tx" ) . innerHTML = i18next . t ( "interop.destinationChainTx" ) ;
494- document . getElementById ( "interop-status-amount" ) . innerHTML = i18next . t ( "interop.statusAmount" ) ;
495- document . getElementById ( "interop-status-direction" ) . innerHTML = i18next . t ( "interop.statusDirection" ) ;
496-
497- // ACTIVITY TAB
498- document . getElementById ( "activity-title" ) . innerHTML = i18next . t ( "activity.title" ) ;
499- document . getElementById ( "activity-subtitle" ) . innerHTML = i18next . t ( "activity.subtitle" ) ;
500- document . getElementById ( "activity-no-txns" ) . innerHTML = i18next . t ( "activity.noTxns" ) ;
509+ updateText ( ) ;
510+ }
511+ export async function updateTranslation ( language ) {
512+ await i18next . changeLanguage ( language , updateText ) ;
513+ }
501514
502- // FOOTER
503- document . getElementById ( "footer-network" ) . innerHTML = i18next . t ( "footer.network" ) ;
504- document . getElementById ( "footer-powered-by-zk" ) . innerHTML = i18next . t ( "footer.poweredByZk" ) ;
505- document . getElementById ( "footer-secured-by-passkeys" ) . innerHTML = i18next . t ( "footer.securedByPasskeys" ) ;
515+ function updateText ( ) {
516+ Object . keys ( elementIdMappings ) . forEach ( ( key ) => {
517+ Object . keys ( elementIdMappings [ key ] ) . forEach ( ( subkey ) => {
518+ const t = `${ key } .${ subkey } ` ;
519+ const id = elementIdMappings [ key ] [ subkey ] ;
520+ if ( Array . isArray ( id ) ) {
521+ id . forEach ( ( i ) => {
522+ document . getElementById ( i ) . innerHTML = i18next . t ( t ) ;
523+ } ) ;
524+ } else {
525+ document . getElementById ( id ) . innerHTML = i18next . t ( t ) ;
526+ }
527+ } ) ;
528+ } ) ;
506529}
0 commit comments