Files
pezkuwi-telegram-miniapp/src/i18n/types.ts
T
pezkuwichain faf0faed69 fix: use wallet address in citizenship referral link
Replace ref_telegramId with SS58 wallet address in referral link.
Share message now includes invitation text, auto-fill link, and
wallet address for manual paste in the referrer field.
2026-02-28 02:33:39 +03:00

873 lines
20 KiB
TypeScript

export interface Translations {
// Navigation
nav: {
announcements: string;
forum: string;
rewards: string;
p2p: string;
wallet: string;
};
// Common
common: {
back: string;
cancel: string;
continue: string;
close: string;
copy: string;
copied: string;
share: string;
refresh: string;
retry: string;
loading: string;
error: string;
anonymous: string;
pinned: string;
locked: string;
trending: string;
};
// Announcements section
announcements: {
title: string;
readMore: string;
reactionAuthRequired: string;
};
// Forum section
forum: {
title: string;
newTopic: string;
submitting: string;
publish: string;
category: string;
topicTitle: string;
topicTitlePlaceholder: string;
content: string;
contentPlaceholder: string;
tagsLabel: string;
tagsPlaceholder: string;
searchPlaceholder: string;
sortRecent: string;
sortPopular: string;
sortReplies: string;
sortViews: string;
all: string;
replies: string;
noRepliesYet: string;
beFirstToReply: string;
replyPlaceholder: string;
noTopicsFound: string;
changeFilters: string;
createNewTopic: string;
loginToVote: string;
voteError: string;
writeReply: string;
topicLocked: string;
replyError: string;
fillAllFields: string;
topicCreated: string;
topicCreateError: string;
};
// Rewards section
rewards: {
title: string;
subtitle: string;
connectWalletFirst: string;
overview: string;
referral: string;
scores: string;
referralScore: string;
maxScore: string;
referMoreTitle: string;
referMoreDescription: string;
kycApproved: string;
referrer: string;
none: string;
invitedMe: string;
pendingReferral: string;
completeKyc: string;
inviteFriends: string;
yourLink: string;
copySuccess: string;
copyLink: string;
shareLink: string;
scoreSystem: string;
activeStatus: string;
timeRemaining: string;
active: string;
inactive: string;
activeDescription: string;
youAreActive: string;
iAmActive: string;
activatedAlert: string;
shareText: string;
referralInstruction: string;
copyAlert: string;
referralCount: string;
noReferrals: string;
shareYourLink: string;
trustScore: string;
rank: string;
citizen: string;
staking: string;
stakingNotStarted: string;
stakingWaitingData: string;
stakingCountedInTrust: string;
people: string;
tiki: string;
nftRole: string;
education: string;
reading: string;
stakingRewards: string;
totalRewards: string;
recentRewards: string;
noRewardsYet: string;
scoreFormula: string;
stakingZeroWarning: string;
refreshScores: string;
points: string;
citizenshipStatus: string;
pendingApproval: string;
approved: string;
waitingReferrer: string;
confirmCitizenship: string;
confirmingCitizenship: string;
signingBlockchain: string;
citizenshipConfirmed: string;
citizenshipFailed: string;
startTracking: string;
startTrackingDesc: string;
startingTracking: string;
trackingStarted: string;
trackingFailed: string;
recordTrustScore: string;
recordTrustDesc: string;
recordingTrustScore: string;
trustScoreRecorded: string;
trustScoreRecordFailed: string;
citizenCountTitle: string;
citizenCountDesc: string;
beCitizen: string;
pezRewardsTitle: string;
epoch: string;
claimPeriod: string;
epochClosed: string;
epochOpen: string;
scoreRecorded: string;
claimablePez: string;
claim: string;
claimAll: string;
claimPez: string;
claimingReward: string;
claimSuccess: string;
claimFailed: string;
noPezRewards: string;
unclaimedRewards: string;
claimStakingReward: string;
claimAllStaking: string;
claimingStakingReward: string;
stakingClaimSuccess: string;
stakingClaimFailed: string;
noUnclaimedRewards: string;
rewardHistory: string;
era: string;
};
// Wallet section
wallet: {
title: string;
authFailed: string;
authDescription: string;
retry: string;
};
// Wallet Setup
walletSetup: {
officialWallet: string;
createNew: string;
createNewDesc: string;
importWallet: string;
importWalletDesc: string;
securityNote: string;
};
// Wallet Create
walletCreate: {
setPassword: string;
passwordDescription: string;
passwordLabel: string;
passwordPlaceholder: string;
confirmPasswordLabel: string;
confirmPasswordPlaceholder: string;
passwordRequirements: string;
ruleMinLength: string;
ruleLowercase: string;
ruleUppercase: string;
ruleNumber: string;
ruleSpecialChar: string;
rulePasswordsMatch: string;
walletServiceNotReady: string;
passwordRequirementsNotMet: string;
walletCreationFailed: string;
preparing: string;
creating: string;
meetPasswordRequirements: string;
backupTitle: string;
backupDescription: string;
backupWarning: string;
copiedMnemonic: string;
copyMnemonic: string;
conditionWrittenDown: string;
conditionNeverShare: string;
conditionLossRisk: string;
acceptAllConditions: string;
verifyWords: string;
reset: string;
verifyDescription: string;
dropWordsHere: string;
wrongOrder: string;
saving: string;
verify: string;
wordsCount: string;
walletCreated: string;
walletReady: string;
yourAddress: string;
getStarted: string;
};
// Wallet Import
walletImport: {
title: string;
description: string;
seedPhraseLabel: string;
seedPhrasePlaceholder: string;
wordsCount: string;
newPassword: string;
seedPhraseInvalid: string;
passwordInvalid: string;
passwordsMismatch: string;
importFailed: string;
importing: string;
importButton: string;
};
// Wallet Connect
walletConnect: {
deleteTitle: string;
deleteDescription: string;
deleteButton: string;
openWallet: string;
passwordLabel: string;
passwordPlaceholder: string;
enterPassword: string;
wrongPassword: string;
connecting: string;
connect: string;
deleteWalletLink: string;
};
// Deposit USDT Modal
deposit: {
title: string;
subtitle: string;
depositHistory: string;
noDeposits: string;
goBack: string;
selectNetwork: string;
recommended: string;
warning: string;
example: string;
acceptTrc20: string;
important: string;
minimum: string;
memoRequired: string;
onlyUsdt: string;
trc20Fee: string;
depositAddress: string;
notAvailable: string;
memoLabel: string;
memoWarning: string;
uniqueAddress: string;
howToDeposit: string;
stepCopyAddress: string;
stepCopyMemo: string;
stepOpenTon: string;
stepOpenPolkadot: string;
stepOpenTrc20: string;
stepSendUsdt: string;
stepReceive: string;
processingTime: string;
copyFailed: string;
statusPending: string;
statusConfirming: string;
statusCompleted: string;
statusFailed: string;
statusExpired: string;
viewTx: string;
trc20FeeWarning: string;
};
// P2P Section
p2p: {
title: string;
subtitle: string;
firstTime: string;
steps: string[];
note: string;
button: string;
// Tabs
buy: string;
sell: string;
myAds: string;
myTrades: string;
// Balance
internalBalance: string;
available: string;
locked: string;
totalBalance: string;
noBalance: string;
// Offers
createOffer: string;
acceptOffer: string;
confirmAccept: string;
noOffers: string;
filters: string;
allTokens: string;
allCurrencies: string;
prev: string;
next: string;
min: string;
max: string;
trades: string;
// Offer form
token: string;
fiatCurrency: string;
pricePerUnit: string;
amount: string;
fiatTotal: string;
paymentMethod: string;
selectPaymentMethod: string;
paymentDetails: string;
paymentDetailsPlaceholder: string;
minOrder: string;
maxOrder: string;
timeLimit: string;
minutes: string;
insufficientBalance: string;
timeLimitWarning: string;
// Trade
tradeDetails: string;
tradeNotFound: string;
role: string;
buyer: string;
seller: string;
cryptoAmount: string;
fiatAmount: string;
timeline: string;
tradeCreated: string;
paymentSent: string;
paymentConfirmed: string;
tradeCompleted: string;
timeRemaining: string;
expired: string;
// Trade actions
markPaid: string;
confirmReceived: string;
cancelTrade: string;
// Status
status: {
open: string;
paused: string;
locked: string;
completed: string;
cancelled: string;
pending: string;
payment_sent: string;
disputed: string;
refunded: string;
};
// Chat
chat: string;
noMessages: string;
messagePlaceholder: string;
// Dispute
openDispute: string;
disputeWarning: string;
disputeCategory: string;
selectCategory: string;
disputeReason: string;
disputeReasonPlaceholder: string;
minChars: string;
submitDispute: string;
dispute: {
payment_not_received: string;
wrong_amount: string;
fake_payment_proof: string;
other: string;
};
// Deposit / Withdraw
deposit: string;
withdraw: string;
platformWallet: string;
txHash: string;
txHashPlaceholder: string;
blockNumber: string;
optional: string;
verifyDeposit: string;
verifying: string;
verifyingDesc: string;
depositSuccess: string;
depositFailed: string;
depositInstructions: string;
depositInvalidAmount: string;
depositSending: string;
depositSendingDesc: string;
walletNotConnected: string;
connectWalletFirst: string;
selectToken: string;
withdrawAmount: string;
networkFee: string;
netAmount: string;
withdrawSuccess: string;
withdrawProcessing: string;
withdrawing: string;
minWithdraw: string;
maxAvailable: string;
walletAddress: string;
// No data
noTrades: string;
};
// Update Notification
update: {
newVersion: string;
description: string;
later: string;
updateNow: string;
};
// Social Links
social: {
followUs: string;
stayConnected: string;
instagram: string;
tiktok: string;
snapchat: string;
telegram: string;
twitter: string;
youtube: string;
facebook: string;
discord: string;
};
// Error Boundary
errorBoundary: {
title: string;
description: string;
retry: string;
};
// Loading Screen
loadingScreen: {
loading: string;
};
// Dashboard (WalletDashboard main view)
dashboard: {
connected: string;
send: string;
receive: string;
presaleMessage: string;
depositUsdt: string;
depositUsdtDesc: string;
recentActivity: string;
history: string;
refreshTx: string;
loadingTx: string;
noRecentTx: string;
historyAppears: string;
sent: string;
received: string;
selectStaking: string;
validatorNominate: string;
trustScorePlus: string;
lpStakeDesc: string;
pezRewardPlus: string;
goBack: string;
stakedNote: string;
};
// Send Tab
send: {
back: string;
selectToken: string;
whichToken: string;
someChainNotConnected: string;
transferSuccess: string;
wasSent: string;
done: string;
sendToken: string;
changeToken: string;
recipientAddress: string;
scanQr: string;
scanQrText: string;
qrNotAvailable: string;
invalidAddress: string;
amount: string;
balanceLabel: string;
sending: string;
sendButton: string;
walletNotReady: string;
selectTokenFirst: string;
fillAddressAndAmount: string;
insufficientBalance: string;
mainnetApiNotReady: string;
assetHubApiNotReady: string;
transferFailed: string;
};
// Receive Tab
receive: {
title: string;
back: string;
qrFailed: string;
shareAddress: string;
addressCopied: string;
copyAddress: string;
};
// History Tab
history: {
title: string;
back: string;
loadingTx: string;
noTransactions: string;
historyAppears: string;
sent: string;
received: string;
to: string;
from: string;
};
// Swap Modal
swap: {
title: string;
fromLabel: string;
toLabel: string;
exchangeRate: string;
noPool: string;
swapping: string;
noPoolButton: string;
swapButton: string;
swapFailed: string;
swapSuccess: string;
balanceLabel: string;
insufficientBalance: string;
};
// Pools Modal
pools: {
title: string;
connectionError: string;
loadingPools: string;
noPools: string;
back: string;
addLiquidity: string;
removeLiquidity: string;
yourPosition: string;
addButton: string;
removeButton: string;
reserve: string;
lpBalance: string;
lpTokenAmount: string;
amountAuto: string;
adding: string;
removing: string;
addFailed: string;
removeFailed: string;
invalidLpAmount: string;
estimatedReturn: string;
success: string;
addedLiquidity: string;
removedLiquidity: string;
};
// HEZ Staking Modal
staking: {
palletNotFound: string;
fetchError: string;
statusTab: string;
bondTab: string;
nominateTab: string;
unbondTab: string;
activeStake: string;
totalBonded: string;
nominations: string;
rewardDestination: string;
unbondingChunks: string;
nominatedValidators: string;
stakingTip: string;
notStakedYet: string;
stakeForTrustScore: string;
startStaking: string;
yourBalance: string;
currentlyStaked: string;
amountHez: string;
bondWarning: string;
bonding: string;
bondExtra: string;
bondButton: string;
bondFirst: string;
selectValidators: string;
commission: string;
nominating: string;
nominateButton: string;
notStakedUnbond: string;
unbondWarning: string;
unbondProcessing: string;
unbondButton: string;
bondSuccess: string;
nominateSuccess: string;
unbondSuccess: string;
bondFailed: string;
nominateFailed: string;
unbondFailed: string;
};
// LP Staking Modal
lpStaking: {
palletNotReady: string;
poolsNotLoaded: string;
noPoolsYet: string;
selectPool: string;
totalStaked: string;
youStaked: string;
lpBalance: string;
reward: string;
stakeTab: string;
unstakeTab: string;
rewardTab: string;
amount: string;
balanceLabel: string;
stakedLabel: string;
staking: string;
stakeButton: string;
unstaking: string;
unstakeButton: string;
pendingRewards: string;
claiming: string;
claimButton: string;
stakeFailed: string;
stakeSuccess: string;
unstakeFailed: string;
unstakeSuccess: string;
claimFailed: string;
claimSuccess: string;
};
// Fund Fees Modal
fees: {
title: string;
subtitle: string;
success: string;
sentTo: string;
failed: string;
tryAgain: string;
targetChain: string;
forTransfers: string;
forIdentity: string;
minRecommended: string;
amountHez: string;
signing: string;
xcmTeleportPending: string;
signingButton: string;
processing: string;
sendTo: string;
walletNotConnected: string;
apiNotConnected: string;
enterValidAmount: string;
chainNotConnected: string;
insufficientBalance: string;
xcmPalletNotFound: string;
teleportFailed: string;
errorOccurred: string;
};
// Tokens Card
tokens: {
searchPlaceholder: string;
addToken: string;
assetIdPlaceholder: string;
cancel: string;
add: string;
blockchainConnected: string;
connectingBlockchain: string;
connectingRpc: string;
tokenNotFound: string;
total: string;
loadingBalance: string;
};
// Error messages (error-tracking.ts)
errors: {
networkError: string;
timeout: string;
walletNotFound: string;
wrongPassword: string;
default: string;
};
// Password validation (crypto.ts)
validation: {
minLength: string;
needLowercase: string;
needUppercase: string;
needNumber: string;
needSpecialChar: string;
weakPassword: string;
};
// Time formatting (utils.ts)
time: {
now: string;
minutesAgo: string;
hoursAgo: string;
daysAgo: string;
};
// Context messages (WalletContext, ReferralContext, wallet-storage)
context: {
walletInitFailed: string;
rpcDisconnected: string;
pleaseLoginFirst: string;
invalidSeedPhrase: string;
connectionFailed: string;
referralStatsError: string;
referralApproved: string;
wrongPasswordError: string;
walletSyncFailed: string;
};
// Explorer page
explorer: {
title: string;
subtitle: string;
search: string;
chainStats: string;
latestBlocks: string;
recentTransfers: string;
block: string;
validators: string;
era: string;
blockTime: string;
extrinsics: string;
noResults: string;
connecting: string;
hash: string;
from: string;
to: string;
amount: string;
time: string;
balance: string;
seconds: string;
finalized: string;
searchResult: string;
};
// Citizen page
citizen: {
pageTitle: string;
// Form labels
fullName: string;
fullNamePlaceholder: string;
fatherName: string;
fatherNamePlaceholder: string;
grandfatherName: string;
grandfatherNamePlaceholder: string;
motherName: string;
motherNamePlaceholder: string;
tribe: string;
tribePlaceholder: string;
maritalStatus: string;
married: string;
single: string;
childrenCount: string;
childName: string;
childNamePlaceholder: string;
childBirthYear: string;
addChild: string;
removeChild: string;
region: string;
regionPlaceholder: string;
regionBakur: string;
regionBasur: string;
regionRojava: string;
regionRojhelat: string;
regionKurdistanASor: string;
regionDiaspora: string;
email: string;
emailPlaceholder: string;
profession: string;
professionPlaceholder: string;
referrerAddress: string;
referrerPlaceholder: string;
// Consent
consentCheckbox: string;
// Buttons
submit: string;
sign: string;
openApp: string;
// Processing
preparingData: string;
readyToSign: string;
signingTx: string;
// Application submitted
applicationSubmitted: string;
pendingReferral: string;
identityHash: string;
walletAddress: string;
applicationInfo: string;
depositRequired: string;
// Privacy & Seed phrase
privacyNotice: string;
seedPhrase: string;
seedPhrasePlaceholder: string;
invalidSeedPhrase: string;
// Processing
connectingChain: string;
// Success - next steps
stepApplicationSent: string;
stepReferrerApproval: string;
stepConfirm: string;
nextStepsInfo: string;
// Errors
fillAllFields: string;
acceptConsent: string;
walletNotConnected: string;
peopleChainNotConnected: string;
submissionFailed: string;
alreadyPending: string;
alreadyApproved: string;
insufficientBalance: string;
// Language selector
selectLanguage: string;
};
}
export type LanguageCode = 'krd' | 'en' | 'tr' | 'ckb' | 'fa' | 'ar';
export const VALID_LANGS: LanguageCode[] = ['krd', 'en', 'tr', 'ckb', 'fa', 'ar'];
export const DEFAULT_LANG: LanguageCode = 'krd';
export const RTL_LANGUAGES: LanguageCode[] = ['ckb', 'fa', 'ar'];
export const LANGUAGE_NAMES: Record<LanguageCode, string> = {
krd: 'Kurmancî',
en: 'English',
tr: 'Türkçe',
ckb: 'سۆرانی',
fa: 'فارسی',
ar: 'العربية',
};