Files
pezkuwi-telegram-miniapp/src/i18n/translations/en.ts
T

685 lines
23 KiB
TypeScript

import type { Translations } from '../types';
const en: Translations = {
nav: {
announcements: 'News',
forum: 'Forum',
rewards: 'Rewards',
p2p: 'P2P',
wallet: 'Wallet',
},
common: {
back: 'Back',
cancel: 'Cancel',
continue: 'Continue',
close: 'Close',
copy: 'Copy',
copied: 'Copied!',
share: 'Share',
refresh: 'Refresh',
retry: 'Try again',
loading: 'Loading...',
error: 'Error',
anonymous: 'Anonymous',
pinned: 'Pinned',
locked: 'Locked',
trending: 'Trending',
},
announcements: {
title: 'Announcements',
readMore: 'Read more',
reactionAuthRequired: 'You must be in Telegram to vote',
},
forum: {
title: 'Forum',
newTopic: 'New Topic',
submitting: 'Submitting...',
publish: 'Publish',
category: 'Category',
topicTitle: 'Title',
topicTitlePlaceholder: 'Topic title...',
content: 'Content',
contentPlaceholder: 'Write the topic content...',
tagsLabel: 'Tags (separate with comma)',
tagsPlaceholder: 'blockchain, kurd, pez...',
searchPlaceholder: 'Search topics...',
sortRecent: 'New',
sortPopular: 'Popular',
sortReplies: 'Replies',
sortViews: 'Views',
all: 'All',
replies: 'Replies',
noRepliesYet: 'No replies yet',
beFirstToReply: 'Be the first to reply!',
replyPlaceholder: 'Write your reply...',
noTopicsFound: 'No topics found',
changeFilters: 'Change your filters',
createNewTopic: 'Create New Topic',
loginToVote: 'Log in to vote',
voteError: 'Error voting',
writeReply: 'Please write your reply',
topicLocked: 'This topic is locked',
replyError: 'Error sending reply',
fillAllFields: 'Please fill in all fields',
topicCreated: 'Topic created!',
topicCreateError: 'Error creating topic',
},
rewards: {
title: 'Rewards',
subtitle: 'Rewards - Referral System',
connectWalletFirst: 'To see your referrals and rewards, connect your wallet first.',
overview: 'Overview',
referral: 'Referral',
scores: 'Scores',
referralScore: 'Referral Score',
maxScore: 'Max score: 500',
referMoreTitle: 'Refer more, earn more!',
referMoreDescription:
'For every person you bring, you receive HEZ and PEZ as rewards. More referrals = more rewards!',
kycApproved: 'KYC Approved',
referrer: 'Referrer',
none: 'None',
invitedMe: 'Invited me',
pendingReferral: 'Pending referral',
completeKyc: 'Complete KYC to approve referral from',
inviteFriends: 'Invite your friends',
yourLink: 'Your link',
copySuccess: 'Copied!',
copyLink: 'Copy',
shareLink: 'Share',
scoreSystem: 'Score system',
activeStatus: 'Activity Status',
timeRemaining: 'Time: {time} remaining',
active: 'Active',
inactive: 'Inactive',
activeDescription: 'Click once every 24 hours to stay active and earn more rewards!',
youAreActive: 'You are Active!',
iAmActive: 'I am Active!',
activatedAlert: 'You are now active! Click again after 24 hours.',
shareText: 'Pezkuwichain - Digital State of Kurdistan! Join us through my link:',
copyAlert: 'Copied',
referralCount: '{count} referrals (KYC approved)',
noReferrals: 'You have no referrals yet',
shareYourLink: 'Share your link!',
trustScore: 'Trust Score',
rank: 'Rank: {rating}',
citizen: 'Citizen',
staking: 'Staking',
stakingNotStarted: 'Not started',
stakingWaitingData: 'Waiting for data...',
stakingCountedInTrust: 'Counted in Trust score',
people: '{count} people',
tiki: 'Tiki',
nftRole: 'NFT Role',
education: 'Education',
reading: 'Reading',
stakingRewards: 'Staking Rewards',
totalRewards: 'Total rewards received',
recentRewards: 'Recent rewards',
noRewardsYet: 'No rewards recorded yet',
scoreFormula: 'Score Formula',
stakingZeroWarning: 'If Staking is 0, Trust score is also 0. Stake first!',
refreshScores: 'Refresh Scores',
points: 'points',
citizenshipStatus: 'Citizenship Status',
pendingApproval: 'Pending',
approved: 'Approved',
waitingReferrer: 'Waiting for referrer approval...',
confirmCitizenship: 'Confirm Citizenship',
confirmingCitizenship: 'Confirming citizenship...',
signingBlockchain: 'Signing on blockchain',
citizenshipConfirmed: 'Congratulations! You are now a citizen!',
citizenshipFailed: 'Confirmation failed',
},
wallet: {
title: 'Wallet',
authFailed: 'Authentication Failed',
authDescription: 'Please make sure you open this app within Telegram',
retry: 'Try Again',
},
walletSetup: {
officialWallet: 'Official Pezkuwichain wallet',
createNew: 'Create New Wallet',
createNewDesc: 'Create a new wallet with seed phrase',
importWallet: 'Import Wallet',
importWalletDesc: 'Use your existing seed phrase',
securityNote:
'Your wallet is securely stored on your device. We never have access to your keys.',
},
walletCreate: {
setPassword: 'Set Password',
passwordDescription: 'This password will be used to unlock your wallet',
passwordLabel: 'Password',
passwordPlaceholder: 'At least 12 characters',
confirmPasswordLabel: 'Confirm Password',
confirmPasswordPlaceholder: 'Confirm your password',
passwordRequirements: 'Password Requirements:',
ruleMinLength: 'At least 12 characters',
ruleLowercase: 'At least 1 lowercase letter (a-z)',
ruleUppercase: 'At least 1 uppercase letter (A-Z)',
ruleNumber: 'At least 1 number (0-9)',
ruleSpecialChar: 'At least 1 special character (!@#$%...)',
rulePasswordsMatch: 'Passwords match',
walletServiceNotReady: 'Wallet service is not ready. Please wait.',
passwordRequirementsNotMet: 'Please meet all password requirements',
walletCreationFailed: 'Wallet creation failed. Please try again',
preparing: 'Preparing...',
creating: 'Creating...',
meetPasswordRequirements: 'Meet password requirements',
backupTitle: 'Backup Seed Phrase',
backupDescription: 'These 12 words are your wallet. Write them in a safe place!',
backupWarning:
'Important: These words are shown only once. If you lose them, you cannot access your wallet.',
copiedMnemonic: 'Copied!',
copyMnemonic: 'Copy',
conditionWrittenDown: 'I have written down these 12 words in a safe place',
conditionNeverShare: 'I understand I must never share these words with anyone',
conditionLossRisk: 'I understand if I lose these words I cannot access my wallet',
acceptAllConditions: 'Accept all conditions',
verifyWords: 'Verify Words',
reset: 'Reset',
verifyDescription: 'Please arrange the words in the correct order',
dropWordsHere: 'Place words here...',
wrongOrder: 'Wrong word order. Please try again',
saving: 'Saving...',
verify: 'Verify',
wordsCount: '{count}/12 words',
walletCreated: 'Wallet Created!',
walletReady: 'Your wallet is ready',
yourAddress: 'Your address',
getStarted: 'Get Started',
},
walletImport: {
title: 'Import Wallet',
description: 'Enter your existing wallet seed phrase',
seedPhraseLabel: 'Seed Phrase (12 or 24 words)',
seedPhrasePlaceholder: 'Enter your words separated by spaces...',
wordsCount: '{count} / 12 words',
newPassword: 'New Password',
seedPhraseInvalid: 'Seed phrase must be 12 or 24 words',
passwordInvalid: 'Password is invalid',
passwordsMismatch: 'Passwords do not match',
importFailed: 'Import failed',
importing: 'Importing...',
importButton: 'Import',
},
walletConnect: {
deleteTitle: 'Delete Wallet?',
deleteDescription:
"This action cannot be undone. If you don't have your seed phrase, you will not be able to access your wallet.",
deleteButton: 'Delete',
openWallet: 'Open Wallet',
passwordLabel: 'Password',
passwordPlaceholder: 'Enter your password',
enterPassword: 'Enter your password',
wrongPassword: 'Wrong password',
connecting: 'Opening...',
connect: 'Connect',
deleteWalletLink: 'Delete wallet',
},
deposit: {
title: 'Deposit USDT',
subtitle: 'For wUSDT on Asset Hub',
depositHistory: 'Deposit History',
noDeposits: 'No deposits yet',
goBack: 'Go back',
selectNetwork: 'Select Network',
recommended: 'Recommended',
warning: 'Warning!',
example: 'Example: Send 10 USDT \u2192 Receive 7 wUSDT ($3 fee)',
acceptTrc20: 'I accept, send via TRC20',
important: 'Important!',
minimum: 'Minimum: {amount} USDT',
memoRequired: 'Write your code in the Memo/Comment field',
onlyUsdt: 'Only send USDT, other tokens will be lost',
trc20Fee: '$3 fee will be deducted from your amount',
depositAddress: 'Deposit Address',
notAvailable: 'Not available',
memoLabel: 'Memo / Comment (REQUIRED)',
memoWarning: 'Write this code in the memo, otherwise your deposit will not be recognized!',
uniqueAddress: 'This address is uniquely yours. No memo needed.',
howToDeposit: 'How to Deposit?',
stepCopyAddress: 'Copy the address',
stepCopyMemo: 'Copy the memo code',
stepOpenTon: 'Open Telegram Wallet or your wallet',
stepOpenPolkadot: 'Open your Polkadot wallet',
stepOpenTrc20: 'Open TronLink or your wallet',
stepSendUsdt: 'Send USDT to the address above',
stepReceive: 'wUSDT will be in your account within a few minutes',
processingTime: 'Processing time: ~1-5 minutes',
copyFailed: 'Copy failed',
statusPending: 'Pending',
statusConfirming: 'Confirming',
statusCompleted: 'Completed',
statusFailed: 'Failed',
statusExpired: 'Expired',
viewTx: 'View TX',
trc20FeeWarning: 'TRC20 network fee is about $3. We recommend TON or Polkadot network.',
},
p2p: {
title: 'P2P Exchange',
subtitle: 'Trade crypto peer-to-peer',
firstTime: 'First time using P2P?',
steps: [
'Click the button below to open the web app',
'Create an account or log in',
'Complete the P2P setup process',
'After setup, you can access P2P directly',
],
note: 'The web app will open in a new window. Complete the registration process there.',
button: 'Open P2P Platform',
},
update: {
newVersion: 'New version available!',
description: 'Update for new features and security fixes.',
later: 'Later',
updateNow: 'Update',
},
social: {
followUs: 'Follow us',
stayConnected: 'Stay connected and get the latest news!',
instagram: 'Photos & Stories',
tiktok: 'Short videos',
snapchat: 'Snap us!',
telegram: 'Official channel',
twitter: 'Daily news',
youtube: 'Our videos',
facebook: 'Official page',
discord: 'Our community',
},
errorBoundary: {
title: 'Something went wrong',
description: 'Sorry, a technical error occurred. Please try again.',
retry: 'Try again',
},
loadingScreen: {
loading: 'Loading...',
},
// Dashboard
dashboard: {
connected: 'Connected',
send: 'Send',
receive: 'Receive',
presaleMessage: 'Presale is coming! It will open very soon.',
depositUsdt: 'Add USDT',
depositUsdtDesc: 'From TON, Polkadot or TRC20 networks',
recentActivity: 'Recent Activity',
history: 'History',
refreshTx: 'Refresh',
loadingTx: 'Loading...',
noRecentTx: 'No recent transactions',
historyAppears: 'Your history will appear here',
sent: 'Sent',
received: 'Received',
selectStaking: 'Select Staking',
validatorNominate: 'Nominate validators',
trustScorePlus: 'Trust Score +',
lpStakeDesc: 'Stake LP tokens',
pezRewardPlus: 'PEZ Reward +',
goBack: 'Back',
},
// Send
send: {
back: '← Back',
selectToken: 'Select Token',
whichToken: 'Which token to send?',
someChainNotConnected: '⚠️ Some chains are not connected',
transferSuccess: 'Transfer Successful!',
wasSent: '{amount} {token} was sent',
done: 'Done',
sendToken: 'Send {token}',
changeToken: 'Change',
recipientAddress: 'Recipient Address',
scanQr: 'Scan QR',
scanQrText: 'Scan wallet address',
qrNotAvailable: 'QR scanner is not available on this platform',
invalidAddress: 'Invalid address',
amount: 'Amount',
balanceLabel: 'Balance:',
sending: 'Sending...',
sendButton: 'Send',
walletNotReady: 'Wallet is not ready',
selectTokenFirst: 'Select a token',
fillAddressAndAmount: 'Enter address and amount',
insufficientBalance: 'Insufficient balance',
mainnetApiNotReady: 'Mainnet API is not ready',
assetHubApiNotReady: 'Asset Hub API is not ready',
transferFailed: 'Transfer failed',
},
// Receive
receive: {
title: 'Receive',
back: '← Back',
qrFailed: 'QR generation failed',
shareAddress: 'This is your address. Share it to receive tokens.',
addressCopied: 'Copied!',
copyAddress: 'Copy Address',
},
// History
history: {
title: 'Transaction History',
back: '← Back',
loadingTx: 'Loading...',
noTransactions: 'No transactions',
historyAppears: 'Your history will appear here',
sent: 'Sent',
received: 'Received',
to: 'To:',
from: 'From:',
},
// Swap
swap: {
title: 'Token Swap',
fromLabel: 'From',
toLabel: 'To',
exchangeRate: 'Exchange Rate',
noPool: 'No pool',
swapping: 'Swapping...',
noPoolButton: 'No Pool',
swapButton: 'Swap',
swapFailed: 'Swap failed',
swapSuccess: 'Swap Successful!',
balanceLabel: 'Balance:',
insufficientBalance: 'Insufficient balance',
},
// Pools
pools: {
title: 'Liquidity Pools',
connectionError: 'Connection error - please retry',
loadingPools: 'Loading...',
noPools: 'No pools',
back: '← Back',
addLiquidity: 'Add Liquidity',
removeLiquidity: 'Remove Liquidity',
yourPosition: 'Your Position',
addButton: 'Add',
removeButton: 'Remove',
reserve: 'Reserve',
lpBalance: 'LP Balance:',
lpTokenAmount: 'LP Token Amount',
amountAuto: '{token} Amount (auto)',
adding: 'Adding...',
removing: 'Removing...',
addFailed: 'Add liquidity failed',
removeFailed: 'Remove liquidity failed',
invalidLpAmount: 'Invalid LP amount',
estimatedReturn: 'Estimated return:',
success: 'Success!',
addedLiquidity: '{amount0} {token0} + {amount1} {token1} added',
removedLiquidity: '{amount} LP tokens returned',
},
// Staking
staking: {
palletNotFound: 'Staking pallet not found',
fetchError: 'Failed to fetch staking info',
statusTab: 'Status',
bondTab: 'Bond',
nominateTab: 'Nominate',
unbondTab: 'Unbond',
activeStake: 'Active Stake',
totalBonded: 'Total Bonded',
nominations: 'Nominations',
rewardDestination: 'Reward Destination',
unbondingChunks: 'Unbonding',
nominatedValidators: 'Nominated Validators',
stakingTip: 'Staking HEZ increases Trust Score. Stake for at least 1 month for bonus.',
notStakedYet: 'Not Staked Yet',
stakeForTrustScore: 'Stake HEZ to earn Trust Score',
startStaking: 'Start Staking',
yourBalance: 'Your Balance',
currentlyStaked: 'Currently Staked',
amountHez: 'Amount (HEZ)',
bondWarning: 'Staking requires 28 days for withdrawal.',
bonding: 'Bonding...',
bondExtra: 'Add More',
bondButton: 'Bond',
bondFirst: 'First bond HEZ, then nominate',
selectValidators: 'Select validators (max 16): {count}/16',
commission: 'Commission:',
nominating: 'Nominating...',
nominateButton: 'Nominate',
notStakedUnbond: 'You have not staked yet',
unbondWarning: 'Unbonding takes 28 days. Then you can withdraw.',
unbondProcessing: 'Unbonding...',
unbondButton: 'Unbond',
bondSuccess: '{amount} HEZ staked successfully!',
nominateSuccess: '{count} validators nominated successfully!',
unbondSuccess: '{amount} HEZ unbonded! (28 days waiting)',
bondFailed: 'Bond failed',
nominateFailed: 'Nominate failed',
unbondFailed: 'Unbond failed',
},
// LP Staking
lpStaking: {
palletNotReady: 'Staking pallet is not ready',
poolsNotLoaded: 'Failed to load staking pools',
noPoolsYet: 'No staking pools yet',
selectPool: 'Select Pool',
totalStaked: 'Total Staked',
youStaked: 'You Staked',
lpBalance: 'LP Balance',
reward: 'Reward',
stakeTab: 'Stake',
unstakeTab: 'Unstake',
rewardTab: 'Rewards',
amount: 'Amount ({asset})',
balanceLabel: 'Balance:',
stakedLabel: 'Staked:',
staking: 'Staking...',
stakeButton: 'Stake',
unstaking: 'Unstaking...',
unstakeButton: 'Unstake',
pendingRewards: 'Pending Rewards',
claiming: 'Claiming...',
claimButton: 'Claim Rewards',
stakeFailed: 'Stake failed',
stakeSuccess: 'Staked successfully!',
unstakeFailed: 'Unstake failed',
unstakeSuccess: 'Unstaked successfully!',
claimFailed: 'Claim failed',
claimSuccess: 'Rewards claimed!',
},
// Fees
fees: {
title: 'Add Fee',
subtitle: 'HEZ teleport',
success: 'Success!',
sentTo: '{amount} HEZ sent to {chain}',
failed: 'Failed',
tryAgain: 'Try Again',
targetChain: 'Target Chain',
forTransfers: 'For PEZ transfers',
forIdentity: 'For identity',
minRecommended: '{description} minimum 0.1 HEZ recommended.',
amountHez: 'Amount (HEZ)',
signing: 'Sign the transaction...',
xcmTeleportPending: 'XCM Teleport in progress...',
signingButton: 'Signing...',
processing: 'Processing...',
sendTo: 'Send to {chain}',
walletNotConnected: 'Wallet not connected',
apiNotConnected: 'API not connected',
enterValidAmount: 'Enter a valid amount',
chainNotConnected: 'Chain not connected',
insufficientBalance: 'Insufficient balance',
xcmPalletNotFound: 'XCM pallet not found',
teleportFailed: 'Teleport failed',
errorOccurred: 'An error occurred',
},
// Tokens
tokens: {
searchPlaceholder: 'Search token...',
addToken: 'Add Token',
assetIdPlaceholder: 'Enter Asset ID (e.g. 3)',
cancel: 'Cancel',
add: 'Add',
blockchainConnected: 'Pezkuwichain Connected',
connectingBlockchain: 'Connecting to Blockchain...',
connectingRpc: 'Connecting to RPC server...',
tokenNotFound: 'Token not found',
total: 'Total',
loadingBalance: 'Loading...',
},
// Errors
errors: {
networkError: 'No internet connection. Please check your connection.',
timeout: 'Operation took too long. Please try again.',
walletNotFound: 'Wallet not found. Please create or restore a wallet.',
wrongPassword: 'Wrong password. Please try again.',
default: 'Something went wrong. Please try again.',
},
// Validation
validation: {
minLength: 'Password must be at least 12 characters',
needLowercase: 'Password must contain at least 1 lowercase letter (a-z)',
needUppercase: 'Password must contain at least 1 uppercase letter (A-Z)',
needNumber: 'Password must contain at least 1 number (0-9)',
needSpecialChar: 'Password must contain at least 1 special character (!@#$%...)',
weakPassword: 'Password is not strong enough. Try a longer password with diverse characters.',
},
// Time
time: {
now: 'Now',
minutesAgo: '{count} min ago',
hoursAgo: '{count} hours ago',
daysAgo: '{count} days ago',
},
// Context
context: {
walletInitFailed: 'Wallet initialization failed',
rpcDisconnected: 'RPC connection lost. Reconnecting...',
pleaseLoginFirst: 'Please log in first',
invalidSeedPhrase: 'Invalid seed phrase',
connectionFailed: 'Connection failed',
referralStatsError: 'Failed to load referral stats',
referralApproved: 'Referral approved! Your count: {count}',
wrongPasswordError: 'Wrong password',
walletSyncFailed: 'Wallet address sync to DB failed',
},
explorer: {
title: 'Pezkuwi Explorer',
subtitle: 'Blockchain Explorer',
search: 'Search block number or address...',
chainStats: 'Chain Stats',
latestBlocks: 'Latest Blocks',
recentTransfers: 'Recent Extrinsics',
block: 'Block',
validators: 'Validators',
era: 'Era',
blockTime: 'Block Time',
extrinsics: 'exts',
noResults: 'No results found',
connecting: 'Connecting to chain...',
hash: 'Hash',
from: 'From',
to: 'To',
amount: 'Amount',
time: 'Time',
balance: 'Balance',
seconds: 's ago',
finalized: 'Finalized Block',
searchResult: 'Search Result',
},
citizen: {
pageTitle: 'Be Citizen',
fullName: 'Full Name',
fullNamePlaceholder: 'Enter your full name',
fatherName: "Father's Name",
fatherNamePlaceholder: "Enter your father's name",
grandfatherName: "Grandfather's Name",
grandfatherNamePlaceholder: "Enter your grandfather's name",
motherName: "Mother's Name",
motherNamePlaceholder: "Enter your mother's name",
tribe: 'Tribe',
tribePlaceholder: 'Enter your tribe name',
maritalStatus: 'Marital Status',
married: 'Married',
single: 'Single',
childrenCount: 'Number of Children',
childName: 'Child {index} Name',
childNamePlaceholder: 'Name',
childBirthYear: 'Birth Year',
addChild: 'Add child',
removeChild: 'Remove',
region: 'Region',
regionPlaceholder: 'Select your region',
regionBakur: 'Bakur (Turkey)',
regionBasur: 'Bashur (Iraq)',
regionRojava: 'Rojava (Syria)',
regionRojhelat: 'Rojhelat (Iran)',
regionKurdistanASor: 'Red Kurdistan',
regionDiaspora: 'Diaspora',
email: 'E-mail',
emailPlaceholder: 'name@mail.com',
profession: 'Profession',
professionPlaceholder: 'Enter your profession',
referrerAddress: 'Referrer Address (Optional)',
referrerPlaceholder: 'Enter SS58 address - leave empty for auto-assign',
consentCheckbox: 'My data is protected with ZK-proof, only a hash is stored on the blockchain',
submit: 'Submit',
sign: 'Sign',
openApp: 'Open App',
preparingData: 'Preparing data...',
readyToSign: 'Ready to sign',
signingTx: 'Signing...',
applicationSubmitted: 'Your application has been submitted!',
pendingReferral: 'Waiting for referrer approval',
identityHash: 'Identity Hash',
applicationInfo: 'Once your referrer approves, you can confirm',
depositRequired: '1 HEZ deposit required',
walletAddress: 'Wallet Address',
privacyNotice:
'Your personal information is never sent anywhere. Only a hash code is generated and recorded on the blockchain.',
seedPhrase: 'Seed Phrase',
seedPhrasePlaceholder: 'Paste your 12 or 24 word seed phrase here...',
invalidSeedPhrase: 'Invalid seed phrase. Please enter 12 or 24 valid words.',
connectingChain: 'Connecting to People Chain...',
stepApplicationSent: 'Application submitted (completed)',
stepReferrerApproval: 'Waiting for referrer approval',
stepConfirm: 'After approval, confirm from your wallet',
nextStepsInfo: 'Follow the next steps from your wallet',
fillAllFields: 'Please fill in all fields',
acceptConsent: 'Please accept the consent checkbox',
walletNotConnected: 'Wallet not connected',
peopleChainNotConnected: 'People Chain not connected',
submissionFailed: 'Submission failed',
alreadyPending: 'You already have a pending application',
alreadyApproved: 'Your citizenship is already approved!',
insufficientBalance: 'Insufficient balance (1 HEZ deposit required)',
selectLanguage: 'Select language',
},
};
export default en;