{
"_nextI18Next": {
"initialI18nStore": {
"en": {
"common": {
"header": {
"connectWallet": "Connect Wallet",
"faq": "FAQ",
"invite": "Invite",
"language": "Language",
"myWheelNFT": "My Wheel NFT",
"profile": "Profile",
"disconnect": "Disconnect",
"points": "Points",
"pts": "Pts",
"inviteFriends": "Invite Friends",
"shareInviteLink": "Share this link to invite your friends",
"copyLink": "Copy Link",
"walletConnected": "Wallet Connected",
"walletConnectFailed": "Failed to Connect Wallet"
},
"languages": {
"english": "English",
"simplifiedChinese": "Simplified Chinese",
"korean": "Korean",
"french": "French",
"spanish": "Spanish",
"german": "German",
"turkish": "Turkish",
"russian": "Russian",
"indonesian": "Indonesian",
"vietnamese": "Vietnamese"
},
"history": {
"currentRound": "Current Round",
"all": "All",
"completed": "Completed",
"canceled": "Canceled",
"onlyYourRounds": "Only Your Rounds",
"round": "ROUND",
"winner": "WINNER",
"prizePool": "PRIZE POOL",
"winnerEntries": "WINNER'S ENTRIES",
"win": "WIN",
"yourEntries": "YOUR ENTRIES",
"players": "PLAYERS",
"finish": "FINISH",
"verify": "VERIFY",
"verifyOnBlockchain": "Verify on blockchain",
"noDataAvailable": "No data available",
"you": "YOU",
"firstPage": "First page",
"previousPage": "Previous page",
"nextPage": "Next page",
"goToPage": "Go to page",
"confirm": "Confirm",
"previousRound": "Previous round",
"nextRound": "Next round",
"enterRoundNumber": "Enter round number",
"go": "Go",
"returnToCurrentRound": "Return to Current Round"
},
"faq": {
"backToHome": "Back to Home",
"title": "Frequently Asked Questions",
"howToPlay": "How do I play the game?",
"bettingLimit": "Is there a betting limit?",
"fees": "Are there any fees?",
"verifyFairness": "How can I verify the fairness of results?",
"winnerVRF": "How to determine the winner with VRF randomword?",
"step1": "1. Connect your Ethereum wallet (like MetaMask)",
"step2": "2. Make sure you have enough ETH in your wallet",
"step3": "3. Select the round you want to participate in",
"step4": "4. Enter the amount of ETH you wish to bet",
"step5": "5. Click the \"Confirm Entry\" button to confirm your participation (or clear button if you entered the wrong amount or rounds)",
"step6": "6. Confirm the transaction in your wallet",
"step7": "7. After the transaction is confirmed, you will appear in the participants list",
"minBet": "Minimum bet",
"maxBet": "Maximum bet",
"winnerFee": "The winning player pays a 0.08% fee from their prize",
"feeDeduction": "This fee is automatically deducted when claiming your prize",
"viewContractInfo": "View Contract Info",
"viewContractCode": "View Contract Code",
"learnMore": "Learn More About Chainlink VRF",
"howToPlayIntro": "To participate in the game, follow these steps:",
"bettingLimitIntro": "Yes, there are betting limits for each round per wallet address:",
"feesIntro": "Yes, there is a small protocol fee for winners:",
"verifyFairnessIntro": "The game uses on-chain randomness (Chainlink VRF) to ensure fair results. You can verify each round's result by following these steps:",
"verifyStep1Title": "Step 1: View Round Information",
"verifyStep1Text": "Open the contract's read interface:",
"verifyStep1Action": "Find item #5 \"getRounds\", enter the round number you want to query, and click \"Query\"",
"verifyStep2Title": "Step 2: Check the Random Number",
"verifyStep2Text": "The query result will include a randomWords field, which is the random number generated by Chainlink VRF used to determine the winner",
"verifyStep3Title": "Step 3: Verify the Random Number Generation Process",
"verifyStep3Text": "You can check the fulfillRandomWords function in the open source contract code to verify how the random number is used to determine the winner and stored onchain. Open the link below and find the \"fulfillRandomWords\" function in file 1 of the Contract Source Code, and ask an AI if you are too lazy to interpret the code:",
"verifyStep4Title": "Step 4: Learn About Chainlink VRF",
"verifyStep4Text": "Chainlink VRF (Verifiable Random Function) is a secure random number generation method that provides tamper-proof and verifiable randomness.",
"winnerStep1Title": "Step 1: Understanding How Players Receive Entry Numbers",
"winnerStep1Text": "Each player receives entry numbers proportional to their deposit:",
"winnerStep1Bullet1": "If each entry costs 0.001 ETH",
"winnerStep1Bullet2": "A player depositing 0.005 ETH",
"winnerStep1Bullet3": "They receive 5 entry numbers",
"winnerStep2Title": "Step 2: Entry Numbers are Allocated Sequentially (Starting from 0)",
"winnerStep2Text": "Entry numbers are assigned sequentially, beginning from 0:",
"winnerStep2Bullet1": "Player A deposits 0.004 ETH → Gets 4 entries → Numbers: 0,1,2,3",
"winnerStep2Bullet2": "Player B deposits 0.001 ETH → Gets 1 entry → Number: 4",
"winnerStep2Bullet3": "Player C deposits 0.01 ETH → Gets 10 entries → Numbers: 5,6,7,8,9,10,11,12,13,14",
"winnerStep2Note": "In the contract, each deposit is recorded with a currentEntryIndex which represents the player's last entry number + 1.",
"winnerStep3Title": "Step 3: Determining the Winning Number",
"winnerStep3Text": "Assuming there are 15 total entry numbers (0-14):",
"winnerStep3Bullet1": "We receive a random number (e.g., 83717131948780008648177766913841719179390589747448283023832568757439077609666)",
"winnerStep3Bullet2": "We perform a modulo operation: 83717131948780008648177766913841719179390589747448283023832568757439077609666 % 15 = 6",
"winnerStep3Bullet3": "Entry number 6 is our winning number",
"winnerStep4Title": "Step 4: Finding the Winner",
"winnerStep4Text": "The contract searches for the owner of the winning entry number using a simple logic: We look for the first player whose currentEntryIndex is greater than the winning number.",
"winnerStep4Example": "Using our example:",
"winnerStep4Bullet1": "Winning number is 6",
"winnerStep4Bullet2": "Player A: currentEntryIndex = 4, 6 > 4, so not Player A",
"winnerStep4Bullet3": "Player B: currentEntryIndex = 5, 6 > 5, so not Player B",
"winnerStep4Bullet4": "Player C: currentEntryIndex = 15, 6 < 15, so Player C is the winner!",
"winnerStep4Conclusion": "Number 6 falls within Player C's range (5-14), confirming C is the winner.",
"nft": {
"pointsEarning": {
"title": "Points & Earning",
"howToEarn": "How do I earn points?",
"intro": "Points can be earned in several ways:",
"regularBetting": {
"title": "Regular betting",
"desc": "Each 0.001 ETH bet earns you 10 base points. So a 0.5 ETH bet gives you 5,000 points, while a 2 ETH bet awards 20,000 points."
},
"firstMover": {
"title": "First mover bonus",
"desc": "The position of your bet in each round gives you significant bonuses:",
"first": "First player to bet: 100% bonus (double points)",
"second": "Second player: 80% bonus (1.8× points)",
"third": "Third player: 50% bonus (1.5× points)",
"fourth": "Fourth player: 20% bonus (1.2× points)"
},
"referral": {
"title": "Referral rewards",
"desc": "When someone you invited makes their first bet, you receive 20% of their base points everytime when they make a bet as a referral bonus."
},
"example": {
"title": "Example scenario:",
"alice": "Alice places a 1 ETH bet as the first player in Round #42:",
"basePoints": "Base points: 1 ETH = 10,000 points",
"firstBonus": "First player bonus: 10,000 points (100% bonus)",
"total": "Total: 20,000 points",
"bob": "Her friend Bob (who she invited) makes his first bet of 2 ETH:",
"referralBonus": "Alice receives a referral bonus of 4,000 points (20% of Bob's 20,000 base points)"
},
"chances": {
"question": "How do points affect my chances of winning NFTs?",
"answer1": "Points determine your allocation of lucky numbers in the lottery. For example, with 500 points out of 10,000 total points, you'd be assigned numbers 0-49, giving you a 5% chance of winning NFTs in the distribution.",
"answer2": "With 100 NFTs available and a 5% share, you could expect to win approximately 5 NFTs, though the actual result depends on the random draw."
}
},
"basics": {
"title": "WheelNFT Basics",
"what": "What is WheelNFT?",
"whatDesc1": "WheelNFT is a unique NFT collection that allows holders to earn continuous rewards from the Wheel platform's gameplay. These NFTs are distributed through fair lottery systems and provide holders with ongoing passive income through regular reward distributions.",
"whatDesc2": "Example: If you hold 2 WheelNFTs, you have 2 chances to win in each weekly draw. With 10 winners selected from 100 NFTs each week, you'd have a 20% chance of winning at least one prize each week.",
"rewards": "How do WheelNFTs generate rewards?",
"rewardsDesc1": "Every time players place bets in the Wheel contract, 1% is collected as protocol fee. 90% of this fee flows directly to the WheelNFT contract, creating a continuous reward stream for NFT holders.",
"rewardsDesc2": "Example: When players bet a total of 1,000 ETH in a week, 10 ETH is collected as protocol fee, and 9 ETH goes to the WheelNFT reward pool. This means each winning NFT that week would receive 0.9 ETH (9 ETH ÷ 10 winners).",
"transfer": "Can I sell or transfer my WheelNFT?",
"transferDesc1": "Yes, WheelNFTs are standard ERC-721 tokens that can be transferred to other wallets, listed on secondary marketplaces, or held in any compatible wallet.",
"transferDesc2": "When you transfer an NFT, all unclaimed rewards remain with the NFT and can be claimed by the new owner.",
"transferDesc3": "Example: If your NFT has accumulated 0.5 ETH in unclaimed rewards and you sell it, the buyer will be able to claim that 0.5 ETH immediately after purchase."
},
"distribution": {
"title": "Distribution & Lottery System",
"howDistributed": "How are the initial 100 WheelNFTs distributed?",
"howDistributedDesc": "During the first month after platform launch, players accumulate points by participating in Wheel games. At the end of this period, 100 WheelNFTs are distributed via a lottery system, with chances proportional to points earned.",
"howLotteryWorks": "How does the distribution lottery work?",
"lotteryStep1Title": "1. Lucky Number Assignment",
"lotteryStep1Desc": "All player points are aggregated and divided into 1,000 lucky numbers (0-999). Each player receives a consecutive range of numbers proportional to their contribution.",
"lotteryStep2Title": "2. Drawing Winning Numbers",
"lotteryStep2Desc": "The contract requests a random number from Chainlink VRF. This base number and a step size of 10 are used to determine 100 winning numbers.",
"lotteryStep3Title": "3. NFT Claiming",
"lotteryStep3Desc": "Each winning number corresponds to a WheelNFT ID (0-99). Players holding winning numbers can claim their NFTs with proof of their eligibility.",
"lotteryExample": "Example: If the random base number is 42, the winning numbers would be: 42, 52, 62, 72... (and so on, adding 10 each time, wrapping around to 0 if exceeding 999). Players whose assigned number ranges include these winning numbers can claim the corresponding NFTs."
},
"weeklyRewards": {
"title": "Weekly Rewards",
"howDistributed": "How are weekly rewards distributed?",
"howDistributedDesc1": "Once all 100 WheelNFTs are claimed, weekly draws begin:",
"howDistributedStep1": "1. The contract collects all protocol fees accumulated during the week",
"howDistributedStep2": "2. Chainlink VRF selects 10 winning NFT IDs randomly",
"howDistributedStep3": "3. The entire week's reward pool is distributed equally among these 10 winners",
"howDistributedExample": "Example: In a week with 5 ETH in the reward pool, each of the 10 winning NFTs would receive 0.5 ETH. If you own 3 NFTs and 2 of them win, you'd receive 1 ETH in total.",
"firstDraw": "When does the first weekly draw happen?",
"firstDrawDesc": "The first weekly draw includes all fees collected during the initial month.",
"firstDrawExample": "Example: If 20 ETH in fees were collected during the first month, the first 10 winning NFTs would each receive 2 ETH.",
"howToClaim": "How do I claim my rewards?",
"howToClaimDesc1": "You can check pending rewards anytime and claim them in the NFT page. The process is simple:",
"howToClaimStep1": "1. Connect your wallet holding the NFT",
"howToClaimStep2": "2. Click the claim button and confirm in your wallet",
"howToClaimStep3": "3. Receive all accumulated rewards across all your NFTs in a single transaction",
"howToClaimExample": "Example: If you have 3 NFTs with 0.5 ETH, 0.7 ETH, and 0.3 ETH in rewards respectively, you'd receive the total 1.5 ETH in one transaction when claiming."
},
"reclaiming": {
"title": "NFT Reclaiming & Fairness",
"mechanism": "What is the 6-month reclaiming mechanism?",
"mechanismDesc1": "Every 6 months, all NFTs are reclaimed by the contract for redistribution:",
"mechanismStep1": "1. The protocol announces the reclaim with a 7-day notice",
"mechanismStep2": "2. NFT holders have 7 days to claim any pending rewards",
"mechanismStep3": "3. After the waiting period, all NFTs return to the contract",
"mechanismStep4": "4. A new distribution lottery begins based on points accumulated during the past 6 months",
"mechanismExample": "Example: Alice has held 5 NFTs for almost 6 months. Before the reclaiming period ends, she claims her 3 ETH in accumulated rewards. Her NFTs return to the contract, but she's been active in the game and accumulated 15% of all points during this period, giving her a good chance to win in the next distribution.",
"whyReclaim": "Why are NFTs reclaimed every 6 months?",
"whyReclaimDesc": "This mechanism ensures fair participation opportunities for all users and prevents permanent monopolization of NFTs. It rewards active participants while giving new users chances to obtain NFTs.",
"howFairnessEnsured": "How is the fairness of draws ensured?",
"howFairnessEnsuredDesc1": "The WheelNFT system ensures fairness through:",
"fairnessPoint1": "• Verifiable randomness: All lotteries use Chainlink VRF, a provably fair random number generator",
"fairnessPoint2": "• Proportional distribution: Initial allocation is proportional to participation",
"fairnessPoint3": "• Regular redistribution: The 6-month reclaim prevents permanent advantages",
"fairnessPoint4": "• Transparent mechanics: All code is public and verifiable on the blockchain",
"fairnessExample": "Example: Even if a wealthy player buys many NFTs on the secondary market, in 6 months those NFTs will be reclaimed and redistributed based on active participation, giving all players a fresh opportunity."
}
},
"countdown": {
"days": "days",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds"
}
},
"profile": {
"title": "User Profile",
"connectWalletFirst": "Please connect your wallet first to view your information",
"personalInfo": "Personal Information",
"clickToEdit": "Click avatar to edit (Max: 2M)",
"username": "Username",
"setUsername": "Set your username",
"save": "Save",
"walletAddress": "Wallet address",
"totalPoints": "Total points",
"recentPointsHistory": "Recent Points History",
"noPointsRecord": "No points record yet. Join the game to earn points!",
"round": "Round",
"points": "Points",
"reason": "Reason",
"time": "Time",
"yourInviteCode": "Your Invite Code",
"copy": "Copy",
"inviteFriendsMessage": "Invite your friends using this link. When they make their first bet, you'll receive 20% of their points as a reward!"
},
"enter": {
"enterNow": "Enter Now",
"connectWalletToPlay": "Connect Wallet to Play",
"enterGame": "Enter Game",
"amountPerRound": "Amount per Round",
"walletBalance": "Balance",
"numberOfRounds": "Number of Rounds",
"max": "Max",
"totalEntryAmount": "Total Entry Amount:",
"clearSelection": "Clear",
"confirmEntry": "Confirm Entry",
"minimumEntry": "Minimum Entry 0.001 ETH"
},
"claimPrize": {
"claimPrize": "Claim Prize",
"totalPrizePool": "Total Prize Pool",
"protocolFee": "Protocol Fee (10%)",
"claimableAmount": "Claimable Amount",
"fromWinningRounds": "From {{count}} winning rounds",
"noWinningRounds": "No winning rounds",
"claiming": "claiming...",
"claimSuccessful": "successfully claimed!",
"claimFailed": "claim failed, please try again.",
"transactionSubmitted": "Transaction submitted, please wait for confirmation...",
"confirmClaim": "Confirm Claim"
},
"withdrawDeposits": {
"withdrawDeposits": "Withdraw Deposits",
"withdraw": "Withdraw",
"withdrawDepositsFromCancelledRounds": "Withdraw Deposits from Cancelled Rounds",
"withdrawableAmount": "Withdrawable Amount",
"fromCancelledRounds": "From {{count}} cancelled rounds",
"noWithdrawableDeposits": "No withdrawable deposits",
"withdrawing": "withdrawing...",
"withdrawSuccessful": "successfully withdrawn!",
"withdrawFailed": "withdrawal failed, please try again.",
"confirmWithdrawal": "Confirm Withdrawal"
},
"pnlChecker": {
"pnl": "PnL",
"pnlChecker": "PnL Checker",
"close": "Close",
"profitAndLossAnalysis": "Profit and Loss Analysis",
"wallet": "Wallet",
"enterEthereumWallet": "Enter Ethereum wallet address to check profit and loss data",
"invalidWalletFormat": "Invalid wallet address format",
"enterWalletPrompt": "Please enter a valid wallet address",
"loadingData": "Loading data...",
"overallProfitLoss": "Overall Profit and Loss",
"totalBets": "Total Bets (ETH)",
"totalPrize": "Total Prize (ETH)",
"protocolFee": "Protocol Fee (ETH)",
"netProfit": "Net Profit (ETH)",
"topPrizeRecords": "Top Prize Records",
"round": "Round",
"prize": "Prize",
"noPrizeRecords": "No prize records yet"
},
"playerList": {
"noPlayer": "No player",
"beFirstPlayer": "Be the first player!",
"pts": "Pts"
},
"roundDetails": {
"pool": "Pool",
"players": "Players",
"yourBet": "Your Bet",
"yourWinRate": "Your Win Rate",
"loading": "Loading..."
},
"wheel": {
"requestingRandomness": "Requesting Randomness...",
"noEnoughPlayers": "No enough players",
"cancelling": "Cancelling...",
"drawingWinner": "Drawing Winner...",
"roundIsCancelled": "Round is cancelled",
"newRoundStartingIn": "New round starting in:",
"nextRound": "Next Round: {{time}}s"
},
"index": {
"previousRound": "Previous Round",
"nextRound": "Next Round",
"viewingHistoricalRound": "Historical Round",
"currentRound": "Current Round",
"viewAllHistory": "View All History",
"round": "Round",
"returnToCurrentRound": "Return to Current Round",
"connecting": "Connecting...",
"discordChat": "Discord Chat",
"history": "History",
"discord": "Discord",
"players": "Players",
"prizePool": "Prize Pool",
"yourEntries": "Your Entries",
"winChance": "Win Chance"
},
"userPage": {
"pageTitle": "My Wheel NFT",
"metaDescription": "Check your Wheel NFTs, claim eligibility, rewards, and view draw history.",
"toast": {
"installMetaMask": "Please install MetaMask",
"unsupportedNetwork": "Unsupported Network",
"connectFailed": "Failed to connect wallet",
"walletDisconnected": "Wallet disconnected",
"connectFirst": "Please connect wallet first",
"eligibilityChecked": "Eligibility checked",
"eligibilityCheckFailed": "Failed to check eligibility",
"nftsLoaded": "NFTs loaded successfully",
"loadNftsFailed": "Failed to load NFTs",
"rewardsLoaded": "Rewards loaded successfully",
"loadRewardsFailed": "Failed to load rewards",
"loadHistoryFailed": "Failed to load history",
"tryAgainLater": "Please try again later",
"nftQueryFailed": "NFT query failed",
"noDrawRecordFound": "No draw record found",
"drawNotFoundDesc": "No record found for draw #{{searchId}}",
"drawNotFound": "Draw not found",
"drawNotExistDesc": "Draw #{{searchId}} does not exist or is out of range",
"queryHistoryFailed": "Failed to query history",
"selectTokenId": "Please select a Token ID to claim",
"txCancelled": "Transaction cancelled",
"txCancelledDesc": "You cancelled the transaction signature",
"claimNftFailed": "Failed to claim NFT",
"noRewardsToClaim": "No rewards to claim",
"rewardsClaimed": "Rewards claimed successfully",
"claimRewardsFailed": "Failed to claim rewards",
"noDrawRecordsFound": "No draw records found",
"loadingFailed": "Loading failed",
"loadDrawsFailed": "Failed to load draw records",
"cryptoLibNotLoaded": "Encryption library not fully loaded",
"refreshAndTryAgain": "Please refresh the page and try again",
"noNftsToClaim": "No NFTs to claim",
"batchClaimSuccess": "Batch claim successful",
"batchClaimDesc": "Successfully submitted claim requests for {{count}} NFTs",
"batchClaimFailed": "Batch claim failed",
"drawHistoryLoaded": "Recent draw records loaded successfully"
},
"errors": {
"merkleLibNotLoaded": "Merkle tree library not fully loaded, please try again later",
"merkleProofFailed": "Unable to generate valid Merkle proof, please check whitelist configuration"
},
"nftStatus": {
"owned": "Owned by you",
"ownedByOther": "Owned by someone else",
"notMinted": "Not minted yet",
"availableToClaim": "Available to claim",
"minted": "Minted",
"error": "Error checking status"
},
"searchResult": {
"nftStatusLabel": "NFT Status",
"ownerLabel": "Owner"
},
"claimType": {
"transfer": "Transfer from contract",
"mint": "Mint new token",
"default": "Select token to check"
},
"eligibilityStatus": {
"checking": "Checking your eligibility...",
"eligiblePrefix": "Eligible TokenIDs",
"notEligible": "You currently have no NFTs to claim.",
"error": "Error checking eligibility, please try again later."
},
"claimNft": {
"title": "Claim Your NFT",
"selectTokenLabel": "Select Token ID:",
"selectTokenPlaceholder": "Choose a Token ID",
"claimTypeLabel": "Claim Type:",
"claimSuccess": "NFT claimed successfully!",
"claimError": "Failed to claim NFT, please try again."
},
"rewards": {
"title": "Claimable Rewards",
"availableRewards": "Available Rewards",
"totalLabel": "Total",
"loadingRewards": "Loading rewards data...",
"noRewards": "No rewards to claim"
},
"myNfts": {
"title": "Your NFTs",
"rewardLabel": "Reward",
"promptToCheck": "Click \"Check My NFTs\" to view your NFTs"
},
"nftQuery": {
"title": "NFT Query",
"placeholder": "Enter NFT ID to query",
"statusLabel": "Status"
},
"drawHistory": {
"title": "Draw History",
"searchPlaceholder": "Enter draw ID to search",
"latestDraws": "Latest Draws",
"loading": "Loading draw history...",
"noRecords": "No draw records found",
"drawId": "Draw ID",
"date": "Date",
"winningNfts": "Winning NFTs",
"rewards": "Rewards"
},
"buttons": {
"checking": "Checking...",
"checkEligibility": "Check Eligibility",
"loading": "Loading...",
"checkRewards": "Check Rewards",
"claimAllRewards": "Claim All Rewards",
"checkMyNfts": "Check My NFTs",
"search": "Search",
"loadHistory": "Load History",
"claiming": "Claiming...",
"claimSelected": "Claim Selected NFT",
"claimAll": "Claim All ({{count}})"
}
},
"countdown": {
"h": "h",
"m": "m",
"s": "s"
},
"navigation": {
"home": "Home",
"history": "History",
"nft": "NFT",
"profile": "Profile",
"rank": "Rank"
},
"menu": {
"title": "Menu",
"connectWithUs": "Connect with us",
"language": "Language"
},
"leaderboard": {
"title": "Points Leaderboard",
"description": "Points Leaderboard for Wheel On Chain",
"user": "User",
"points": "Points",
"winnings": "Winnings",
"allTime": "All Time",
"weekly": "Weekly",
"daily": "Daily",
"rank": "RANK",
"player": "PLAYER",
"netProfit": "NET PROFIT",
"totalBets": "TOTAL BETS",
"totalWinnings": "TOTAL WINNINGS",
"totalFee": "TOTAL FEE",
"noData": "No data available",
"you": "YOU"
}
},
"navigation": {}
}
},
"initialLocale": "en",
"ns": [
"common",
"navigation"
],
"userConfig": {
"i18n": {
"defaultLocale": "en",
"locales": [
"en",
"zh-CN",
"ko",
"fr",
"es",
"de",
"tr",
"ru",
"id",
"vi"
],
"localeDetection": false
},
"localePath": "/home/wheel_on_chain/public/locales",
"ns": [
"common",
"navigation"
],
"defaultNS": "common",
"react": {
"useSuspense": false,
"wait": true
},
"fallbackLng": "en",
"load": "currentOnly",
"debug": false,
"keySeparator": ".",
"interpolation": {
"escapeValue": false
},
"returnNull": false,
"returnEmptyString": false,
"default": {
"i18n": {
"defaultLocale": "en",
"locales": [
"en",
"zh-CN",
"ko",
"fr",
"es",
"de",
"tr",
"ru",
"id",
"vi"
],
"localeDetection": false
},
"localePath": "/home/wheel_on_chain/public/locales",
"ns": [
"common",
"navigation"
],
"defaultNS": "common",
"react": {
"useSuspense": false,
"wait": true
},
"fallbackLng": "en",
"load": "currentOnly",
"debug": false,
"keySeparator": ".",
"interpolation": {
"escapeValue": false
},
"returnNull": false,
"returnEmptyString": false
}
}
},
"debugInfo": {
"timestamp": "2025-06-07T07:03:28.501Z",
"locale": "en",
"path": "/index"
}
}