<?php

declare(strict_types=1);

// @phpcs:disable Generic.Files.LineLength 

namespace BeycanPress\Tokenico;

use BeycanPress\Tokenico\PluginHero\Hook;

class Constants
{
    /**
     * @return array<string,string>
     */
    public static function getLang(): array
    {
        return Hook::callFilter('lang', [
            'add' => esc_html__('Add', 'tokenico'),
            'ok' => esc_html__('OK', 'tokenico'),
            'yes' => esc_html__('Yes', 'tokenico'),
            'no' => esc_html__('No', 'tokenico'),
            'fee' => esc_html__('Fee', 'tokenico'),
            'view' => esc_html__('View', 'tokenico'),
            'info' => esc_html__('Info', 'tokenico'),
            'error' => esc_html__('Error', 'tokenico'),
            'close' => esc_html__('Close', 'tokenico'),
            'name' => esc_html__('Name', 'tokenico'),
            'symbol' => esc_html__('Symbol', 'tokenico'),
            'adminAddress' => esc_html__('Admin address', 'tokenico'),
            'decimals' => esc_html__('Decimals', 'tokenico'),
            'totalSupply' => esc_html__('Total supply', 'tokenico'),
            'tokenDetails' => esc_html__('Token details', 'tokenico'),
            'sales' => esc_html__('Sales', 'tokenico'),
            'soldAt' => esc_html__('Sold at', 'tokenico'),
            'buyer' => esc_html__('Buyer', 'tokenico'),
            'presaleKey' => esc_html__('Presale key', 'tokenico'),
            'network' => esc_html__('Network', 'tokenico'),
            'tokenAmount' => esc_html__('Token amount', 'tokenico'),
            'purchaseAmount' => esc_html__('Purchase amount', 'tokenico'),
            'transactionHash' => esc_html__('Transaction hash', 'tokenico'),
            'search' => esc_html__('Search', 'tokenico'),
            'status' => esc_html__('Status', 'tokenico'),
            'upcoming' => esc_html__('Upcoming', 'tokenico'),
            'live' => esc_html__('Live', 'tokenico'),
            'ended' => esc_html__('Ended', 'tokenico'),
            'allPresales' => esc_html__('All presales', 'tokenico'),
            'allNetworks' => esc_html__('All networks', 'tokenico'),
            'success' => esc_html__('Success', 'tokenico'),
            'failed' => esc_html__('Failed', 'tokenico'),
            'update' => esc_html__('Update', 'tokenico'),
            'cancel' => esc_html__('Cancel', 'tokenico'),
            'warning' => esc_html__('Warning', 'tokenico'),
            'copied' => esc_html__('Copied', 'tokenico'),
            'address' => esc_html__('Address', 'tokenico'),
            'social' => esc_html__('Social', 'tokenico'),
            'presale' => esc_html__('Presale', 'tokenico'),
            'loading' => esc_html__('Loading...', 'tokenico'),
            'loadMore' => esc_html__('Load more', 'tokenico'),
            'disconnect' => esc_html__('Disconnect', 'tokenico'),
            'detected' => esc_html__('Detected', 'tokenico'),
            'download' => esc_html__('Download', 'tokenico'),
            'onlyDesktop' => esc_html__('Only desktop', 'tokenico'),
            'openInApp' => esc_html__('Open in app', 'tokenico'),
            'minimum' => esc_html__('Minimum', 'tokenico'),
            'maximum' => esc_html__('Maximum', 'tokenico'),
            'exchange' => esc_html__('Exchange', 'tokenico'),
            'website' => esc_html__('Website', 'tokenico'),
            'logoUrl' => esc_html__('Logo URL', 'tokenico'),
            'airdrop' => esc_html__('AirDrop', 'tokenico'),
            'websiteUrl' => esc_html__('Website URL', 'tokenico'),
            'socialLinks' => esc_html__('Social Links', 'tokenico'),
            'description' => esc_html__('Description', 'tokenico'),
            'startTime' => esc_html__('Start time', 'tokenico'),
            'endTime' => esc_html__('End time', 'tokenico'),
            'tokenSoon' => esc_html__('Token (soon)', 'tokenico'),
            'list' => esc_html__('List', 'tokenico'),
            'delete' => esc_html__('Delete', 'tokenico'),
            'create' => esc_html__('Create', 'tokenico'),
            'buyWith' => esc_html__('Buy with {symbol}', 'tokenico'),
            'remainingLimit' => esc_html__('Remaining limit', 'tokenico'),
            'managePresale' => esc_html__('Manage presale', 'tokenico'),
            'deletePresale' => esc_html__('Delete presale', 'tokenico'),
            'presaleDeleted' => esc_html__('Presale deleted!', 'tokenico'),
            'invalidForm' => esc_html__('Invalid form!', 'tokenico'),
            'youWillPay' => esc_html__('You will pay', 'tokenico'),
            'youWillReceive' => esc_html__('You will receive', 'tokenico'),
            'pay' => esc_html__('Pay', 'tokenico'),
            'receive' => esc_html__('Receive', 'tokenico'),
            'youPay' => esc_html__('You pay', 'tokenico'),
            'youReceive' => esc_html__('You receive', 'tokenico'),
            'openInAppManual' => esc_html__('Open in app manual', 'tokenico'),
            'copiedToClipboard' => esc_html__('Copied to clipboard!', 'tokenico'),
            'presaleEndsIn' => esc_html__('Presale: Ends in', 'tokenico'),
            'presaleEnded' => esc_html__('Presale: Ended', 'tokenico'),
            'presaleStartsIn' => esc_html__('Presale: Starts in', 'tokenico'),
            'connectWallet' => esc_html__('Connect Wallet', 'tokenico'),
            'connectWallet2' => esc_html__('Connect {wallet}', 'tokenico'),
            'changeWallet' => esc_html__('Change Wallet', 'tokenico'),
            'pageNotFound' => esc_html__('404 - Page not found', 'tokenico'),
            'successfullyUpdated' => esc_html__('Successfully updated!', 'tokenico'),
            'noPresaleRecord' => esc_html__('No presale record found!', 'tokenico'),
            'networkNotSelected' => esc_html__('Network not selected!', 'tokenico'),
            'blockchainNetwork' => esc_html__('Blockchain network', 'tokenico'),
            'requiredField' => esc_html__('This field is required!', 'tokenico'),
            'contractAddress' => esc_html__('Token contract address', 'tokenico'),
            'createPresale' => esc_html__('Create presale', 'tokenico'),
            'crateAirdrop' => esc_html__('Create airdrop', 'tokenico'),
            'totalSaleLimit' => esc_html__('Total sale (cap) limit', 'tokenico'),
            'instantTransfer' => esc_html__('Instant transfer', 'tokenico'),
            'airDropList' => esc_html__('AirDrop list', 'tokenico'),
            'presaleList' => esc_html__('Presale list', 'tokenico'),
            'pleaseWait' => esc_html__('Please wait...', 'tokenico'),
            'connectingWallet' => esc_html__('Connecting Wallet...', 'tokenico'),
            'requestRejected' => esc_html__('Request rejected', 'tokenico'),
            'createNewPresale' => esc_html__('Create new presale', 'tokenico'),
            'createNewAirdrop' => esc_html__('Create new airdrop', 'tokenico'),
            'createNewToken' => esc_html__('Create new token', 'tokenico'),
            'claimAfterPresale' => esc_html__('Claim after presale', 'tokenico'),
            'intrinsicGasTooLow' => esc_html__('Intrinsic gas too low', 'tokenico'),
            'fetchingTokenDetails' => esc_html__('Fetching token details...', 'tokenico'),
            'invalidContractAddress' => esc_html__('Invalid contract address!', 'tokenico'),
            'connectionRejected' => esc_html__('Wallet connection rejected!', 'tokenico'),
            'publishProcess' => esc_html__('Please wait for the presale publish process!', 'tokenico'),
            'presalePublish' => esc_html__('Please confirm the presale publish process!', 'tokenico'),
            'presalePublished' => esc_html__('The presale has been released successfully.', 'tokenico'),
            'areYouSureForDelete' => esc_html__('Are you sure you want to delete this presale?', 'tokenico'),
            'youDidintPay' => esc_html__('You did not pay the commission fee for the presale creation!', 'tokenico'),
            'youHaveAlreadyCreated' => esc_html__('You have already created a presale with this ID!', 'tokenico'),
            'insufficientBalance' => esc_html__('You do not have the balance to cover the amount you will pay + transaction gas fees!', 'tokenico'),
            'contractDeployMsg' => esc_html__('Please confirm contract deploy request!', 'tokenico'),
            'deployContract' => esc_html__('Contract being deployed please wait...', 'tokenico'),
            'approveToken' => esc_html__('To be able to sell tokens, the contract address needs confirmation of use. Please confirm!', 'tokenico'),
            'approveProcess' => esc_html__('Please wait for the approval process.', 'tokenico'),
            'youAreCreator' => esc_html__('You are the creator of this presale!', 'tokenico'),
            'socialLinksHaveToBeUrl' => esc_html__('Social links have to be URL!', 'tokenico'),
            'pageNotFoundMessage' => esc_html__('Sorry, the page you are looking for does not exist.', 'tokenico'),
            'cannotBeDigitNumber' => esc_html__('The exchange rate cannot be a digit number like 100.10', 'tokenico'),
            'youCannotParticipate' => esc_html__('You cannot participate in your own presale! Please try with another wallet.', 'tokenico'),
            'pleaseTryToConnectAgain' => esc_html__('Please try to connect again by selecting network {networkName} from your wallet!', 'tokenico'),
            'commissionFeeMsg' => esc_html__('In order to create on {network}, you need to pay {amount} {symbol} commission for your payment. It seems that your connected wallet does not have enough funds.', 'tokenico'),
            'openInAppMsg' => esc_html__('This is a informational message. You tried to redirect to the application with Deep Link. If no application guidance has been made. It means you do not have the relevant wallet application. Please get the relevant wallet app from the app market.', 'tokenico'),
            'openInAppManualMsg' => esc_html__('This is an informational message. This wallet does not support Deep Linking. Therefore, you can try to connect to this wallet directly using the browser in the application.', 'tokenico'),
            'onlyDesktopMsg' => esc_html__('This is an informational message. This wallet does not have support on mobile platforms. So please try connecting to the wallet via a desktop browser.', 'tokenico'),
            'downloadMsg' => esc_html__('This is an informational message. You were redirected to the download link because the relevant wallet could not be detected in your browser. Please try connecting again after installing the wallet.', 'tokenico'),
            'downloadManualMsg' => esc_html__('This is an informational message. No download link is provided for this wallet. So please try connecting after downloading the wallet.', 'tokenico'),
            'bigStartTime' => esc_html__('The start time cannot be greater than the end time!', 'tokenico'),
            'startTimeLessFromNow' => esc_html__('The start time cannot be less than the current time!', 'tokenico'),
            'bigMinContribution' => esc_html__('The minimum contribution cannot be greater than the maximum contribution.', 'tokenico'),
            'bigMinMaxContribution' => esc_html__('Minimum contribution and maximum contribution cannot exceed the total sales limit!', 'tokenico'),
            'lessMinContributionAmount' => esc_html__('The exchange rate should not be less than 1 when calculated based on the minimum participation amount. Please increase your exchange rate.', 'tokenico'),
            'alreadyProcessing' => esc_html__('There is currently a process on the wallet. Please try again after completing the relevant process.', 'tokenico'),
            'walletConnectionTimedOut' => esc_html__('Wallet connection timed out!', 'tokenico'),
            'haveToBeBiggerThanZero' => esc_html__('This field must be greater than zero!', 'tokenico'),
            'totalSaleLimitMinimum' => esc_html__('Total sale (cap) limit must be at least 1!', 'tokenico'),
            'amountHaveToBeBiggerThanZero' => esc_html__('The amount field must be greater than zero!', 'tokenico'),
            'anyError' => esc_html__('An unexpected error has occurred, please try again or contact the site administrator.', 'tokenico'),
            'reownProjectIdRequired' => esc_html__('Reown Project ID is required! Please contact the site administrator.', 'tokenico'),
            'rpcAccessForbidden' => esc_html__('RPC Address refused to connect (This is not an error!). Blockchain networks main RCP API addresses are public, so it can restrict you, in which case you need to get a unique RPC API address from any provider as stated in the documentation. Please report the situation to the site administrator.', 'tokenico'),
            'rpcTimeout' => esc_html__('RPC Timeout! We cannot continue the process because the RPC API of the current blockchain does not respond to our requests. Please report this to the website administrator!', 'tokenico'),
            'invalidTokenAddress' => esc_html__('I think you entered an incorrect token address, so we cannot fetch your token metadata on this network.', 'tokenico'),
            'documentationInfo' => esc_html__('If you are having problems with presale creation, you can review our detailed {link}.', 'tokenico'),
            'saleBalanceError' => esc_html__('There is not enough balance in your wallet for the token you want to sell!', 'tokenico'),
            'airdropBalanceError' => esc_html__('There is not enough balance in your wallet for the token you want to airdrop!', 'tokenico'),
            'lockedWallet' => esc_html__('Your wallet is locked! Please open first and try connect again.', 'tokenico'),
            'notDeployedInThisNetwork' => esc_html__('A contract has not been deployed on this network before, so you need to deploy the contract before you can continue publishing presales!', 'tokenico'),
            'contractNotDeployed' => esc_html__('A contract has not been deployed on this network!', 'tokenico'),
            'tokenProgramRequired' => esc_html__('Token program is required!', 'tokenico'),
            'tokenInfoNotFound' => esc_html__('Token information not found!', 'tokenico'),
            'accessForbidden' => esc_html__('Access forbidden, please try with a working RPC API address!', 'tokenico'),
            'notDelegated' => esc_html__('The wallet is not delegated to the contract address!', 'tokenico'),
            'presaleAccountNotFound' => esc_html__('Presale account not found!', 'tokenico'),
            'multiplePresaleForOneWallet' => esc_html__('You have already created a presale with this wallet and this token. Due to the Solana network structure, only one delegator address can be given for a token in a wallet. So you must create a presale with the same wallet and token, otherwise new presale will override the old ones. In order to create a new presale you can create a new wallet.', 'tokenico'),
            'noFoundAnySale' => esc_html__('No found any sale!', 'tokenico'),
            'noFoundAnyPresale' => esc_html__('No found any presale!', 'tokenico'),
            'youDidNotSendAnyFund' => esc_html__('You did not send any funds!', 'tokenico'),
            'presaleNotStarted' => esc_html__('Presale has not started yet!', 'tokenico'),
            'presaleEnded1' => esc_html__('The presale is over as time has expired!', 'tokenico'),
            'presaleEnded2' => esc_html__('The presale is over as the total sales limit has been reached!', 'tokenico'),
            'exceedingRemainingLimit' => esc_html__('You are exceeding the remaining total purchase limit!', 'tokenico'),
            'maxContributionExceeding' => esc_html__('The maximum contribution limit has been exceeded!', 'tokenico'),
            'minContributionExceeding' => esc_html__('You cannot buy with a value lower than the minimum purchase limit!', 'tokenico'),
            'disabledInstantTransfer' => esc_html__('The method is disabled because instant transfer is on!', 'tokenico'),
            'presaleNotEnded' => esc_html__('This method is not active because the presale is not over!', 'tokenico'),
            'youDidNotBuyToken' => esc_html__('You did not buy any tokens!', 'tokenico'),
            'yourTokensAlreadySent' => esc_html__('Your tokens have already been sent!', 'tokenico'),
            'presaleJustStarted' => esc_html__('Looks like presales have just started or finished. Please wait a while, refresh the page and try again!', 'tokenico'),
            'insufficientLiquidity' => esc_html__('Insufficient liquidity by the seller. This means that the seller does not have enough tokens in his wallet. Please contact the seller.', 'tokenico'),
            'buyProcessSuccess' => esc_html__('Your buying has been confirmed successfully and the tokens have been transferred and they will be reflected in your wallet shortly.', 'tokenico'),
            'buyProcessSuccess2' => esc_html__('Your buying has been confirmed successfully. To transfer your tokens to your wallet, please wait for the presale to end and transfer your tokens to your wallet using the claim button that will be activated.', 'tokenico'),
            'yourRemainingLimitExceeding' => esc_html__('You are exceeding your remaining contribution limit! Your remaining contribution limit {limit}!', 'tokenico'),
            'totalRemainingLimitExceeding' => esc_html__('You are exceeding total remaining contribution limit! Total remaining contribution limit {limit}!', 'tokenico'),
            'confirmBuyingProcess' => esc_html__('Please confirm the buying process!', 'tokenico'),
            'claimConfirm' => esc_html__('Please confirm the claim request in order to claim the total amount of {tokens} you have bought.', 'tokenico'),
            'claimProcess' => esc_html__('Please wait for the claim process!', 'tokenico'),
            'buyProcess' => esc_html__('Please wait for the buying process!', 'tokenico'),
            'airdropProcess' => esc_html__('Please wait for the airdrop process!', 'tokenico'),
            'transactionCreationFailed' => esc_html__('Transaction creation failed!', 'tokenico'),
            'claimProcessSuccess' => esc_html__('Your claim process has been completed successfully!', 'tokenico'),
            'claimProcessFailed' => esc_html__('Claim process failed!', 'tokenico'),
            'buyProcessFailed' => esc_html__('Buy process failed!', 'tokenico'),
            'claimTokens' => esc_html__('Claim tokens', 'tokenico'),
            'yourContributionIsLessThanMin' => esc_html__('Your contribution is less than the minimum contribution limit!', 'tokenico'),
            'yourContributionIsMoreThanMax' => esc_html__('Your contribution is more than the maximum contribution limit!', 'tokenico'),
            'networkIsNotFound' => esc_html__('Unfortunately, the blockchain network on which this ten sale was created is not listed, so unfortunately this ten sale cannot be accessed. Please contact your site administrator and ask for the relevant blockchain network to be activated.', 'tokenico'),
            'cannotAccess' => esc_html__('Unfortunately, you cannot access!', 'tokenico'),
            'solanaClaimWarning' => esc_html__('You have an expired presale that is not in auto transfer mode. Make sure that all users claim their tokens. Otherwise, when you create a new presale, users will not be able to claim their tokens. Do you agree? If you do not want to risk your old presale, you can transfer your tokens to a 2nd wallet and create a new presale.', 'tokenico'),
            'addressAmountNotMatch' => esc_html__('The number of addresses and amounts you entered does not match!', 'tokenico'),
            'amountsMustBeNumber' => esc_html__('Amounts must be number! Please check your amount list."', 'tokenico'),
            'addressFormatError' => esc_html__('Address format error! Please check your address list.', 'tokenico'),
            'oneLinePerAddress' => esc_html__('Please enter one line per address!', 'tokenico'),
            'amountForPerAddress' => esc_html__('Amount for per address', 'tokenico'),
            'oneLinePerAmount' => esc_html__('Amount for per amount', 'tokenico'),
            'equalAmountForAll' => esc_html__('Equal amount for all', 'tokenico'),
            'airDropAmount' => esc_html__('AirDrop amount', 'tokenico'),
            'addressList' => esc_html__('Address list', 'tokenico'),
            'amountList' => esc_html__('Amount list', 'tokenico'),
            'userId' => esc_html__('User ID', 'tokenico'),
            'uploadCsv' => esc_html__('Upload CSV', 'tokenico'),
            'fileReadError' => esc_html__('File read error!', 'tokenico'),
            'amountListRequired' => esc_html__('Amount list is required!', 'tokenico'),
            'transactionLink' => esc_html__('Transaction link', 'tokenico'),
            'testedUpTo1000Address' => esc_html__('At EVM, AirDrop up to 1000 addresses has been tested and worked. However, in Solana, the wallets do not accept more than 10 addresses. So in Solana you can only send to 10 wallets at a time.', 'tokenico'),
            'solanaAirDropSpecialWait' => esc_html__('We need to get token accounts for all the wallets you enter on the Solana network, so this may take a while. Estimated waiting time {time}...', 'tokenico'),
            'deployer' => esc_html__('Deployer', 'tokenico'),
            'deploy' => esc_html__('Deploy', 'tokenico'),
            'deployInfo' => esc_html__('The Deployer page shows the active networks where smart contracts are not deployed. Only you as admin can access this page and deploy contracts for the networks you want to use in advance.', 'tokenico'),
            'deploying' => esc_html__('Deploying...', 'tokenico'),
            'contractDeployed' => esc_html__('Contract deployed!', 'tokenico'),
            'rpcConnectionError' => esc_html__('RPC connection error!, Please check your RPC address.', 'tokenico'),
            'documentation' => esc_html__('documentation', 'tokenico'),
            'withdrawYourTokens' => esc_html__('Withdraw Your Tokens', 'tokenico'),
            'withDrawTokensInfo' => esc_html__('You can withdraw your tokens from the presale contract to your wallet.', 'tokenico'),
        ]);
    }
}
