mirror of
https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
synced 2026-06-20 04:31:05 +00:00
feat: add i18n support with 6 languages (en, tr, krd, ar, fa, ckb)
- Add translation system with useTranslation hook and LanguageProvider - Auto-detect language from Telegram user settings - Update all components and sections to use translation keys - Support English, Turkish, Kurdish, Arabic, Persian, Sorani
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
import { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from 'react';
|
||||
import type { Translations, LanguageCode } from './types';
|
||||
import { RTL_LANGUAGES } from './types';
|
||||
import krd from './translations/krd';
|
||||
import en from './translations/en';
|
||||
import tr from './translations/tr';
|
||||
import ckb from './translations/ckb';
|
||||
import fa from './translations/fa';
|
||||
import ar from './translations/ar';
|
||||
|
||||
const translations: Record<LanguageCode, Translations> = {
|
||||
krd,
|
||||
en,
|
||||
tr,
|
||||
ckb,
|
||||
fa,
|
||||
ar,
|
||||
};
|
||||
|
||||
const VALID_LANGS: LanguageCode[] = ['krd', 'en', 'tr', 'ckb', 'fa', 'ar'];
|
||||
const DEFAULT_LANG: LanguageCode = 'krd';
|
||||
|
||||
/**
|
||||
* Detect language from URL path.
|
||||
* e.g. /krd/... -> krd, /en/... -> en, / -> krd (default)
|
||||
*/
|
||||
function detectLanguageFromURL(): LanguageCode {
|
||||
const path = window.location.pathname;
|
||||
const firstSegment = path.split('/').filter(Boolean)[0];
|
||||
if (firstSegment && VALID_LANGS.includes(firstSegment as LanguageCode)) {
|
||||
return firstSegment as LanguageCode;
|
||||
}
|
||||
return DEFAULT_LANG;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a nested value from an object using dot notation.
|
||||
* e.g. getNestedValue(obj, 'nav.forum') -> obj.nav.forum
|
||||
*/
|
||||
function getNestedValue(obj: Record<string, unknown>, path: string): string | undefined {
|
||||
const keys = path.split('.');
|
||||
let current: unknown = obj;
|
||||
for (const key of keys) {
|
||||
if (current == null || typeof current !== 'object') return undefined;
|
||||
current = (current as Record<string, unknown>)[key];
|
||||
}
|
||||
return typeof current === 'string' ? current : undefined;
|
||||
}
|
||||
|
||||
interface LanguageContextType {
|
||||
lang: LanguageCode;
|
||||
setLang: (lang: LanguageCode) => void;
|
||||
t: (key: string, params?: Record<string, string | number>) => string;
|
||||
isRTL: boolean;
|
||||
}
|
||||
|
||||
const LanguageContext = createContext<LanguageContextType | null>(null);
|
||||
|
||||
interface LanguageProviderProps {
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export function LanguageProvider({ children }: LanguageProviderProps) {
|
||||
const [lang, setLangState] = useState<LanguageCode>(detectLanguageFromURL);
|
||||
|
||||
const isRTL = RTL_LANGUAGES.includes(lang);
|
||||
|
||||
// Update document direction and lang attribute when language changes
|
||||
useEffect(() => {
|
||||
document.documentElement.lang = lang === 'krd' ? 'ku' : lang;
|
||||
document.documentElement.dir = isRTL ? 'rtl' : 'ltr';
|
||||
}, [lang, isRTL]);
|
||||
|
||||
const setLang = useCallback((newLang: LanguageCode) => {
|
||||
setLangState(newLang);
|
||||
// Update URL without reload
|
||||
const currentPath = window.location.pathname;
|
||||
const segments = currentPath.split('/').filter(Boolean);
|
||||
// Remove old lang prefix if present
|
||||
if (segments.length > 0 && VALID_LANGS.includes(segments[0] as LanguageCode)) {
|
||||
segments.shift();
|
||||
}
|
||||
const newPath = `/${newLang}${segments.length > 0 ? '/' + segments.join('/') : ''}`;
|
||||
window.history.replaceState(null, '', newPath);
|
||||
}, []);
|
||||
|
||||
const t = useCallback(
|
||||
(key: string, params?: Record<string, string | number>): string => {
|
||||
// Try current language first
|
||||
let value = getNestedValue(translations[lang] as unknown as Record<string, unknown>, key);
|
||||
// Fallback to Kurdish
|
||||
if (value === undefined && lang !== DEFAULT_LANG) {
|
||||
value = getNestedValue(
|
||||
translations[DEFAULT_LANG] as unknown as Record<string, unknown>,
|
||||
key
|
||||
);
|
||||
}
|
||||
// If still not found, return the key itself
|
||||
if (value === undefined) return key;
|
||||
|
||||
// Replace params like {time}, {count}, {amount}, {rating}
|
||||
if (params) {
|
||||
let result = value;
|
||||
for (const [paramKey, paramValue] of Object.entries(params)) {
|
||||
result = result.replace(`{${paramKey}}`, String(paramValue));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
return value;
|
||||
},
|
||||
[lang]
|
||||
);
|
||||
|
||||
return (
|
||||
<LanguageContext.Provider value={{ lang, setLang, t, isRTL }}>
|
||||
{children}
|
||||
</LanguageContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export function useTranslation() {
|
||||
const context = useContext(LanguageContext);
|
||||
if (!context) {
|
||||
throw new Error('useTranslation must be used within a LanguageProvider');
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
export type { LanguageCode, Translations };
|
||||
export { VALID_LANGS, DEFAULT_LANG, RTL_LANGUAGES, LANGUAGE_NAMES } from './types';
|
||||
@@ -0,0 +1,304 @@
|
||||
import type { Translations } from '../types';
|
||||
|
||||
const ar: Translations = {
|
||||
nav: {
|
||||
announcements: 'الأخبار',
|
||||
forum: 'المنتدى',
|
||||
rewards: 'المكافآت',
|
||||
p2p: 'P2P',
|
||||
wallet: 'المحفظة',
|
||||
},
|
||||
|
||||
common: {
|
||||
back: 'رجوع',
|
||||
cancel: 'إلغاء',
|
||||
continue: 'متابعة',
|
||||
close: 'إغلاق',
|
||||
copy: 'نسخ',
|
||||
copied: 'تم النسخ!',
|
||||
share: 'مشاركة',
|
||||
refresh: 'تحديث',
|
||||
retry: 'حاول مجددًا',
|
||||
loading: 'جارٍ التحميل...',
|
||||
error: 'خطأ',
|
||||
anonymous: 'مجهول',
|
||||
pinned: 'مثبّت',
|
||||
locked: 'مقفل',
|
||||
trending: 'رائج',
|
||||
},
|
||||
|
||||
announcements: {
|
||||
title: 'الإعلانات',
|
||||
readMore: 'اقرأ المزيد',
|
||||
reactionAuthRequired: 'يجب أن تكون في تيليجرام للتصويت',
|
||||
},
|
||||
|
||||
forum: {
|
||||
title: 'المنتدى',
|
||||
newTopic: 'موضوع جديد',
|
||||
submitting: 'جارٍ الإرسال...',
|
||||
publish: 'نشر',
|
||||
category: 'الفئة',
|
||||
topicTitle: 'العنوان',
|
||||
topicTitlePlaceholder: 'عنوان الموضوع...',
|
||||
content: 'المحتوى',
|
||||
contentPlaceholder: 'اكتب محتوى الموضوع...',
|
||||
tagsLabel: 'الوسوم (افصل بينها بفاصلة)',
|
||||
tagsPlaceholder: 'blockchain, kurd, pez...',
|
||||
searchPlaceholder: 'ابحث في المواضيع...',
|
||||
sortRecent: 'جديد',
|
||||
sortPopular: 'شائع',
|
||||
sortReplies: 'الردود',
|
||||
sortViews: 'المشاهدات',
|
||||
all: 'الكل',
|
||||
replies: 'الردود',
|
||||
noRepliesYet: 'لا توجد ردود بعد',
|
||||
beFirstToReply: 'كن أول من يردّ!',
|
||||
replyPlaceholder: 'اكتب ردّك...',
|
||||
noTopicsFound: 'لم يتم العثور على مواضيع',
|
||||
changeFilters: 'غيّر عوامل التصفية',
|
||||
createNewTopic: 'إنشاء موضوع جديد',
|
||||
loginToVote: 'سجّل الدخول للتصويت',
|
||||
voteError: 'خطأ في التصويت',
|
||||
writeReply: 'يرجى كتابة ردّك',
|
||||
topicLocked: 'هذا الموضوع مقفل',
|
||||
replyError: 'خطأ في إرسال الرد',
|
||||
fillAllFields: 'يرجى ملء جميع الحقول',
|
||||
topicCreated: 'تم إنشاء الموضوع!',
|
||||
topicCreateError: 'خطأ في إنشاء الموضوع',
|
||||
},
|
||||
|
||||
rewards: {
|
||||
title: 'المكافآت',
|
||||
subtitle: 'المكافآت - نظام الإحالة',
|
||||
connectWalletFirst: 'لعرض إحالاتك ومكافآتك، قم بربط محفظتك أولاً.',
|
||||
overview: 'نظرة عامة',
|
||||
referral: 'الإحالة',
|
||||
scores: 'النقاط',
|
||||
referralScore: 'نقاط الإحالة',
|
||||
maxScore: 'الحد الأقصى: 500',
|
||||
referMoreTitle: 'أحِل أكثر، واكسب أكثر!',
|
||||
referMoreDescription:
|
||||
'مقابل كل شخص تدعوه، تحصل على HEZ و PEZ كمكافآت. المزيد من الإحالات = المزيد من المكافآت!',
|
||||
kycApproved: 'تم اعتماد KYC',
|
||||
referrer: 'المُحيل',
|
||||
none: 'لا يوجد',
|
||||
invitedMe: 'دعاني',
|
||||
pendingReferral: 'إحالة معلّقة',
|
||||
completeKyc: 'أكمل KYC للموافقة على الإحالة من',
|
||||
inviteFriends: 'ادعُ أصدقاءك',
|
||||
yourLink: 'رابطك',
|
||||
copySuccess: 'تم النسخ!',
|
||||
copyLink: 'نسخ',
|
||||
shareLink: 'مشاركة',
|
||||
scoreSystem: 'نظام النقاط',
|
||||
activeStatus: 'حالة النشاط',
|
||||
timeRemaining: 'الوقت: {time} متبقٍ',
|
||||
active: 'نشط',
|
||||
inactive: 'غير نشط',
|
||||
activeDescription: 'انقر مرة واحدة كل 24 ساعة لتبقى نشطًا وتكسب المزيد من المكافآت!',
|
||||
youAreActive: 'أنت نشط!',
|
||||
iAmActive: 'أنا نشط!',
|
||||
activatedAlert: 'أنت الآن نشط! انقر مجددًا بعد 24 ساعة.',
|
||||
shareText: 'Pezkuwichain - الدولة الرقمية لكردستان! انضم إلينا عبر رابطي:',
|
||||
copyAlert: 'تم النسخ',
|
||||
referralCount: '{count} إحالة (معتمدة KYC)',
|
||||
noReferrals: 'ليس لديك إحالات بعد',
|
||||
shareYourLink: 'شارك رابطك!',
|
||||
trustScore: 'نقاط الثقة',
|
||||
rank: 'الرتبة: {rating}',
|
||||
citizen: 'مواطن',
|
||||
staking: 'التخزين',
|
||||
stakingNotStarted: 'لم يبدأ بعد',
|
||||
stakingCountedInTrust: 'يُحتسب في نقاط الثقة',
|
||||
people: '{count} شخص',
|
||||
tiki: 'تيكي',
|
||||
nftRole: 'دور NFT',
|
||||
education: 'التعليم',
|
||||
reading: 'القراءة',
|
||||
stakingRewards: 'مكافآت التخزين',
|
||||
totalRewards: 'إجمالي المكافآت المستلمة',
|
||||
recentRewards: 'المكافآت الأخيرة',
|
||||
noRewardsYet: 'لا توجد مكافآت مسجّلة بعد',
|
||||
scoreFormula: 'معادلة النقاط',
|
||||
stakingZeroWarning: 'إذا كان التخزين 0، فنقاط الثقة أيضًا 0. قم بالتخزين أولاً!',
|
||||
refreshScores: 'تحديث النقاط',
|
||||
points: 'نقاط',
|
||||
},
|
||||
|
||||
wallet: {
|
||||
title: 'المحفظة',
|
||||
authFailed: 'فشل المصادقة',
|
||||
authDescription: 'يرجى التأكد من فتح هذا التطبيق داخل تيليجرام',
|
||||
retry: 'حاول مجددًا',
|
||||
},
|
||||
|
||||
walletSetup: {
|
||||
officialWallet: 'محفظة Pezkuwichain الرسمية',
|
||||
createNew: 'إنشاء محفظة جديدة',
|
||||
createNewDesc: 'إنشاء محفظة جديدة بعبارة الاسترداد',
|
||||
importWallet: 'استيراد محفظة',
|
||||
importWalletDesc: 'استخدم عبارة الاسترداد الموجودة لديك',
|
||||
securityNote: 'محفظتك مخزّنة بأمان على جهازك. لا نملك أبدًا إمكانية الوصول إلى مفاتيحك.',
|
||||
},
|
||||
|
||||
walletCreate: {
|
||||
setPassword: 'تعيين كلمة المرور',
|
||||
passwordDescription: 'ستُستخدم كلمة المرور هذه لفتح محفظتك',
|
||||
passwordLabel: 'كلمة المرور',
|
||||
passwordPlaceholder: '12 حرفًا على الأقل',
|
||||
confirmPasswordLabel: 'تأكيد كلمة المرور',
|
||||
confirmPasswordPlaceholder: 'أكّد كلمة المرور',
|
||||
passwordRequirements: 'متطلبات كلمة المرور:',
|
||||
ruleMinLength: '12 حرفًا على الأقل',
|
||||
ruleLowercase: 'حرف صغير واحد على الأقل (a-z)',
|
||||
ruleUppercase: 'حرف كبير واحد على الأقل (A-Z)',
|
||||
ruleNumber: 'رقم واحد على الأقل (0-9)',
|
||||
ruleSpecialChar: 'رمز خاص واحد على الأقل (!@#$%...)',
|
||||
rulePasswordsMatch: 'كلمتا المرور متطابقتان',
|
||||
walletServiceNotReady: 'خدمة المحفظة غير جاهزة. يرجى الانتظار.',
|
||||
passwordRequirementsNotMet: 'يرجى استيفاء جميع متطلبات كلمة المرور',
|
||||
walletCreationFailed: 'فشل إنشاء المحفظة. يرجى المحاولة مجددًا',
|
||||
preparing: 'جارٍ التحضير...',
|
||||
creating: 'جارٍ الإنشاء...',
|
||||
meetPasswordRequirements: 'استوفِ متطلبات كلمة المرور',
|
||||
backupTitle: 'نسخ عبارة الاسترداد احتياطيًا',
|
||||
backupDescription: 'هذه الكلمات الـ 12 هي محفظتك. اكتبها في مكان آمن!',
|
||||
backupWarning:
|
||||
'مهم: تُعرض هذه الكلمات مرة واحدة فقط. إذا فقدتها، لن تتمكن من الوصول إلى محفظتك.',
|
||||
copiedMnemonic: 'تم النسخ!',
|
||||
copyMnemonic: 'نسخ',
|
||||
conditionWrittenDown: 'لقد كتبت هذه الكلمات الـ 12 في مكان آمن',
|
||||
conditionNeverShare: 'أفهم أنه يجب ألّا أشارك هذه الكلمات مع أي شخص',
|
||||
conditionLossRisk: 'أفهم أنه إذا فقدت هذه الكلمات فلن أتمكن من الوصول إلى محفظتي',
|
||||
acceptAllConditions: 'قبول جميع الشروط',
|
||||
verifyWords: 'التحقق من الكلمات',
|
||||
reset: 'إعادة تعيين',
|
||||
verifyDescription: 'يرجى ترتيب الكلمات بالترتيب الصحيح',
|
||||
dropWordsHere: 'ضع الكلمات هنا...',
|
||||
wrongOrder: 'ترتيب الكلمات خاطئ. يرجى المحاولة مجددًا',
|
||||
saving: 'جارٍ الحفظ...',
|
||||
verify: 'تحقّق',
|
||||
wordsCount: '{count}/12 كلمة',
|
||||
walletCreated: 'تم إنشاء المحفظة!',
|
||||
walletReady: 'محفظتك جاهزة',
|
||||
yourAddress: 'عنوانك',
|
||||
getStarted: 'ابدأ الآن',
|
||||
},
|
||||
|
||||
walletImport: {
|
||||
title: 'استيراد محفظة',
|
||||
description: 'أدخل عبارة الاسترداد الخاصة بمحفظتك الحالية',
|
||||
seedPhraseLabel: 'عبارة الاسترداد (12 أو 24 كلمة)',
|
||||
seedPhrasePlaceholder: 'أدخل كلماتك مفصولة بمسافات...',
|
||||
wordsCount: '{count} / 12 كلمة',
|
||||
newPassword: 'كلمة مرور جديدة',
|
||||
seedPhraseInvalid: 'يجب أن تكون عبارة الاسترداد 12 أو 24 كلمة',
|
||||
passwordInvalid: 'كلمة المرور غير صالحة',
|
||||
passwordsMismatch: 'كلمتا المرور غير متطابقتين',
|
||||
importFailed: 'فشل الاستيراد',
|
||||
importing: 'جارٍ الاستيراد...',
|
||||
importButton: 'استيراد',
|
||||
},
|
||||
|
||||
walletConnect: {
|
||||
deleteTitle: 'حذف المحفظة؟',
|
||||
deleteDescription:
|
||||
'لا يمكن التراجع عن هذا الإجراء. إذا لم تكن لديك عبارة الاسترداد، فلن تتمكن من الوصول إلى محفظتك.',
|
||||
deleteButton: 'حذف',
|
||||
openWallet: 'فتح المحفظة',
|
||||
passwordLabel: 'كلمة المرور',
|
||||
passwordPlaceholder: 'أدخل كلمة المرور',
|
||||
enterPassword: 'أدخل كلمة المرور',
|
||||
wrongPassword: 'كلمة مرور خاطئة',
|
||||
connecting: 'جارٍ الفتح...',
|
||||
connect: 'اتصال',
|
||||
deleteWalletLink: 'حذف المحفظة',
|
||||
},
|
||||
|
||||
deposit: {
|
||||
title: 'إيداع USDT',
|
||||
subtitle: 'لـ wUSDT على Asset Hub',
|
||||
depositHistory: 'سجل الإيداعات',
|
||||
noDeposits: 'لا توجد إيداعات بعد',
|
||||
goBack: 'رجوع',
|
||||
selectNetwork: 'اختر الشبكة',
|
||||
recommended: 'موصى به',
|
||||
warning: 'تحذير!',
|
||||
example: 'مثال: أرسل 10 USDT \u2192 تستلم 7 wUSDT (رسوم $3)',
|
||||
acceptTrc20: 'أوافق، أرسل عبر TRC20',
|
||||
important: 'مهم!',
|
||||
minimum: 'الحد الأدنى: {amount} USDT',
|
||||
memoRequired: 'اكتب الرمز الخاص بك في حقل المذكرة/التعليق',
|
||||
onlyUsdt: 'أرسل USDT فقط، العملات الأخرى ستُفقد',
|
||||
trc20Fee: 'سيتم خصم رسوم $3 من المبلغ الخاص بك',
|
||||
depositAddress: 'عنوان الإيداع',
|
||||
notAvailable: 'غير متاح',
|
||||
memoLabel: 'المذكرة / التعليق (مطلوب)',
|
||||
memoWarning: 'اكتب هذا الرمز في المذكرة، وإلا لن يتم التعرف على إيداعك!',
|
||||
uniqueAddress: 'هذا العنوان خاص بك. لا حاجة لمذكرة.',
|
||||
howToDeposit: 'كيفية الإيداع؟',
|
||||
stepCopyAddress: 'انسخ العنوان',
|
||||
stepCopyMemo: 'انسخ رمز المذكرة',
|
||||
stepOpenTon: 'افتح محفظة تيليجرام أو محفظتك',
|
||||
stepOpenPolkadot: 'افتح محفظة Polkadot الخاصة بك',
|
||||
stepOpenTrc20: 'افتح TronLink أو محفظتك',
|
||||
stepSendUsdt: 'أرسل USDT إلى العنوان أعلاه',
|
||||
stepReceive: 'سيصل wUSDT إلى حسابك خلال دقائق قليلة',
|
||||
processingTime: 'وقت المعالجة: ~1-5 دقائق',
|
||||
copyFailed: 'فشل النسخ',
|
||||
statusPending: 'قيد الانتظار',
|
||||
statusConfirming: 'قيد التأكيد',
|
||||
statusCompleted: 'مكتمل',
|
||||
statusFailed: 'فشل',
|
||||
statusExpired: 'منتهي الصلاحية',
|
||||
viewTx: 'عرض المعاملة',
|
||||
trc20FeeWarning: 'رسوم شبكة TRC20 حوالي $3. نوصي بشبكة TON أو Polkadot.',
|
||||
},
|
||||
|
||||
p2p: {
|
||||
title: 'تبادل P2P',
|
||||
subtitle: 'تداول العملات الرقمية بين الأفراد',
|
||||
firstTime: 'أول مرة تستخدم P2P؟',
|
||||
steps: [
|
||||
'انقر على الزر أدناه لفتح تطبيق الويب',
|
||||
'أنشئ حسابًا أو سجّل الدخول',
|
||||
'أكمل عملية إعداد P2P',
|
||||
'بعد الإعداد، يمكنك الوصول إلى P2P مباشرة',
|
||||
],
|
||||
note: 'سيُفتح تطبيق الويب في نافذة جديدة. أكمل عملية التسجيل هناك.',
|
||||
button: 'فتح منصة P2P',
|
||||
},
|
||||
|
||||
update: {
|
||||
newVersion: 'يتوفر إصدار جديد!',
|
||||
description: 'حدّث للحصول على ميزات جديدة وإصلاحات أمنية.',
|
||||
later: 'لاحقًا',
|
||||
updateNow: 'تحديث',
|
||||
},
|
||||
|
||||
social: {
|
||||
followUs: 'تابعنا',
|
||||
stayConnected: 'ابقَ على تواصل واحصل على آخر الأخبار!',
|
||||
instagram: 'صور وقصص',
|
||||
tiktok: 'فيديوهات قصيرة',
|
||||
snapchat: 'أرسل لنا سناب!',
|
||||
telegram: 'القناة الرسمية',
|
||||
twitter: 'أخبار يومية',
|
||||
youtube: 'فيديوهاتنا',
|
||||
facebook: 'الصفحة الرسمية',
|
||||
discord: 'مجتمعنا',
|
||||
},
|
||||
|
||||
errorBoundary: {
|
||||
title: 'حدث خطأ ما',
|
||||
description: 'عذرًا، حدث خطأ تقني. يرجى المحاولة مجددًا.',
|
||||
retry: 'حاول مجددًا',
|
||||
},
|
||||
|
||||
loadingScreen: {
|
||||
loading: 'جارٍ التحميل...',
|
||||
},
|
||||
};
|
||||
|
||||
export default ar;
|
||||
@@ -0,0 +1,306 @@
|
||||
import type { Translations } from '../types';
|
||||
|
||||
const ckb: Translations = {
|
||||
nav: {
|
||||
announcements: 'هەواڵەکان',
|
||||
forum: 'فۆڕەم',
|
||||
rewards: 'خەڵاتەکان',
|
||||
p2p: 'P2P',
|
||||
wallet: 'جزدان',
|
||||
},
|
||||
|
||||
common: {
|
||||
back: 'گەڕانەوە',
|
||||
cancel: 'هەڵوەشاندنەوە',
|
||||
continue: 'بەردەوامبوون',
|
||||
close: 'داخستن',
|
||||
copy: 'لەبەرگرتنەوە',
|
||||
copied: 'لەبەرگیرا!',
|
||||
share: 'هاوبەشکردن',
|
||||
refresh: 'نوێکردنەوە',
|
||||
retry: 'دووبارە هەوڵبدەرەوە',
|
||||
loading: 'بارکردن...',
|
||||
error: 'هەڵە',
|
||||
anonymous: 'بێناو',
|
||||
pinned: 'سنجەکراو',
|
||||
locked: 'قفڵکراو',
|
||||
trending: 'بەرزەبایەخ',
|
||||
},
|
||||
|
||||
announcements: {
|
||||
title: 'ڕاگەیاندنەکان',
|
||||
readMore: 'زیاتر بخوێنەرەوە',
|
||||
reactionAuthRequired: 'بۆ دەنگدان دەبێت لە تێلێگرام بیت',
|
||||
},
|
||||
|
||||
forum: {
|
||||
title: 'فۆڕەم',
|
||||
newTopic: 'بابەتی نوێ',
|
||||
submitting: 'ناردن...',
|
||||
publish: 'بڵاوکردنەوە',
|
||||
category: 'پۆل',
|
||||
topicTitle: 'ناونیشان',
|
||||
topicTitlePlaceholder: 'ناونیشانی بابەت...',
|
||||
content: 'ناوەڕۆک',
|
||||
contentPlaceholder: 'ناوەڕۆکی بابەتەکە بنووسە...',
|
||||
tagsLabel: 'تاگەکان (بە کۆما جیابکەرەوە)',
|
||||
tagsPlaceholder: 'بلۆکچەین، کورد، پێز...',
|
||||
searchPlaceholder: 'گەڕان لە بابەتەکان...',
|
||||
sortRecent: 'نوێ',
|
||||
sortPopular: 'بەناوبانگ',
|
||||
sortReplies: 'وەڵامەکان',
|
||||
sortViews: 'بینینەکان',
|
||||
all: 'هەموو',
|
||||
replies: 'وەڵامەکان',
|
||||
noRepliesYet: 'هێشتا هیچ وەڵامێک نییە',
|
||||
beFirstToReply: 'یەکەم کەس بە بۆ وەڵامدانەوە!',
|
||||
replyPlaceholder: 'وەڵامەکەت بنووسە...',
|
||||
noTopicsFound: 'هیچ بابەتێک نەدۆزرایەوە',
|
||||
changeFilters: 'فلتەرەکانت بگۆڕە',
|
||||
createNewTopic: 'بابەتی نوێ دروستبکە',
|
||||
loginToVote: 'بۆ دەنگدان چوونەژوورەوە بکە',
|
||||
voteError: 'هەڵە لە دەنگدان',
|
||||
writeReply: 'تکایە وەڵامەکەت بنووسە',
|
||||
topicLocked: 'ئەم بابەتە قفڵکراوە',
|
||||
replyError: 'هەڵە لە ناردنی وەڵام',
|
||||
fillAllFields: 'تکایە هەموو خانەکان پڕبکەرەوە',
|
||||
topicCreated: 'بابەتەکە دروستکرا!',
|
||||
topicCreateError: 'هەڵە لە دروستکردنی بابەت',
|
||||
},
|
||||
|
||||
rewards: {
|
||||
title: 'خەڵاتەکان',
|
||||
subtitle: 'خەڵاتەکان - سیستەمی بانگهێشتکردن',
|
||||
connectWalletFirst: 'بۆ بینینی بانگهێشتکراوەکانت و خەڵاتەکان، سەرەتا جزدانەکەت پەیوەست بکە.',
|
||||
overview: 'پوختە',
|
||||
referral: 'بانگهێشتکردن',
|
||||
scores: 'خاڵەکان',
|
||||
referralScore: 'خاڵی بانگهێشتکردن',
|
||||
maxScore: 'زۆرترین خاڵ: ٥٠٠',
|
||||
referMoreTitle: 'زیاتر بانگهێشت بکە، زیاتر قازانج بکە!',
|
||||
referMoreDescription:
|
||||
'بۆ هەر کەسێک کە دەیهێنیت، HEZ و PEZ وەک خەڵات وەردەگریت. زیاتر بانگهێشتکردن = زیاتر خەڵات!',
|
||||
kycApproved: 'KYC پەسەندکراو',
|
||||
referrer: 'بانگهێشتکەر',
|
||||
none: 'هیچ',
|
||||
invitedMe: 'بانگهێشتی منی کرد',
|
||||
pendingReferral: 'بانگهێشتی چاوەڕوان',
|
||||
completeKyc: 'KYC تەواو بکە بۆ پەسەندکردنی بانگهێشتکردن لەلایەن',
|
||||
inviteFriends: 'هاوڕێکانت بانگهێشت بکە',
|
||||
yourLink: 'لینکەکەت',
|
||||
copySuccess: 'لەبەرگیرا!',
|
||||
copyLink: 'لەبەرگرتنەوە',
|
||||
shareLink: 'هاوبەشکردن',
|
||||
scoreSystem: 'سیستەمی خاڵ',
|
||||
activeStatus: 'دۆخی چالاکی',
|
||||
timeRemaining: 'کات: {time} ماوە',
|
||||
active: 'چالاک',
|
||||
inactive: 'ناچالاک',
|
||||
activeDescription:
|
||||
'هەر ٢٤ کاتژمێرێک جارێک کلیک بکە بۆ ئەوەی چالاک بمێنیت و زیاتر خەڵات بەدەستبهێنیت!',
|
||||
youAreActive: 'تۆ چالاکیت!',
|
||||
iAmActive: 'من چالاکم!',
|
||||
activatedAlert: 'ئێستا چالاکیت! دوای ٢٤ کاتژمێر دووبارە کلیک بکە.',
|
||||
shareText: 'پێزکوێچەین - دەوڵەتی دیجیتاڵی کوردستان! لە ڕێگەی لینکەکەمەوە پەیوەستمان ببە:',
|
||||
copyAlert: 'لەبەرگیرا',
|
||||
referralCount: '{count} بانگهێشتکراو (KYC پەسەندکراو)',
|
||||
noReferrals: 'هێشتا هیچ بانگهێشتکراوێکت نییە',
|
||||
shareYourLink: 'لینکەکەت هاوبەش بکە!',
|
||||
trustScore: 'خاڵی متمانە',
|
||||
rank: 'پلە: {rating}',
|
||||
citizen: 'هاوڵاتی',
|
||||
staking: 'ستەیکینگ',
|
||||
stakingNotStarted: 'دەستپێنەکراوە',
|
||||
stakingCountedInTrust: 'لە خاڵی متمانە ژمێردراوە',
|
||||
people: '{count} کەس',
|
||||
tiki: 'تیکی',
|
||||
nftRole: 'ڕۆڵی NFT',
|
||||
education: 'پەروەردە',
|
||||
reading: 'خوێندنەوە',
|
||||
stakingRewards: 'خەڵاتەکانی ستەیکینگ',
|
||||
totalRewards: 'کۆی خەڵاتە وەرگیراوەکان',
|
||||
recentRewards: 'خەڵاتە تازەکان',
|
||||
noRewardsYet: 'هێشتا هیچ خەڵاتێک تۆمار نەکراوە',
|
||||
scoreFormula: 'فۆرمولای خاڵ',
|
||||
stakingZeroWarning: 'ئەگەر ستەیکینگ ٠ بێت، خاڵی متمانەش ٠ دەبێت. سەرەتا ستەیک بکە!',
|
||||
refreshScores: 'نوێکردنەوەی خاڵەکان',
|
||||
points: 'خاڵ',
|
||||
},
|
||||
|
||||
wallet: {
|
||||
title: 'جزدان',
|
||||
authFailed: 'ناسینەوە سەرکەوتوو نەبوو',
|
||||
authDescription: 'تکایە دڵنیابەرەوە کە ئەم ئەپەت لەناو تێلێگرام کردووەتەوە',
|
||||
retry: 'دووبارە هەوڵبدەرەوە',
|
||||
},
|
||||
|
||||
walletSetup: {
|
||||
officialWallet: 'جزدانی فەرمی پێزکوێچەین',
|
||||
createNew: 'جزدانی نوێ دروستبکە',
|
||||
createNewDesc: 'جزدانی نوێ بە وشەی نهێنی دروستبکە',
|
||||
importWallet: 'هاوردەکردنی جزدان',
|
||||
importWalletDesc: 'وشەی نهێنی ئامادەکەت بەکاربهێنە',
|
||||
securityNote:
|
||||
'جزدانەکەت بە پاراستنەوە لە ئامێرەکەتدا هەڵدەگیرێت. ئێمە هەرگیز دەسمان بە کلیلەکانت ناگات.',
|
||||
},
|
||||
|
||||
walletCreate: {
|
||||
setPassword: 'وشەی نهێنی دابنێ',
|
||||
passwordDescription: 'ئەم وشەی نهێنییە بۆ کردنەوەی جزدانەکەت بەکاردێت',
|
||||
passwordLabel: 'وشەی نهێنی',
|
||||
passwordPlaceholder: 'لانیکەم ١٢ پیت',
|
||||
confirmPasswordLabel: 'دووپاتکردنەوەی وشەی نهێنی',
|
||||
confirmPasswordPlaceholder: 'وشەی نهێنی دووبارە بنووسە',
|
||||
passwordRequirements: 'مەرجەکانی وشەی نهێنی:',
|
||||
ruleMinLength: 'لانیکەم ١٢ پیت',
|
||||
ruleLowercase: 'لانیکەم ١ پیتی بچووک (a-z)',
|
||||
ruleUppercase: 'لانیکەم ١ پیتی گەورە (A-Z)',
|
||||
ruleNumber: 'لانیکەم ١ ژمارە (0-9)',
|
||||
ruleSpecialChar: 'لانیکەم ١ پیتی تایبەت (!@#$%...)',
|
||||
rulePasswordsMatch: 'وشەی نهێنییەکان وەکیەکن',
|
||||
walletServiceNotReady: 'خزمەتگوزاری جزدان ئامادە نییە. تکایە چاوەڕوان بە.',
|
||||
passwordRequirementsNotMet: 'تکایە هەموو مەرجەکانی وشەی نهێنی جێبەجێ بکە',
|
||||
walletCreationFailed: 'دروستکردنی جزدان سەرکەوتوو نەبوو. تکایە دووبارە هەوڵبدەرەوە',
|
||||
preparing: 'ئامادەکردن...',
|
||||
creating: 'دروستکردن...',
|
||||
meetPasswordRequirements: 'مەرجەکانی وشەی نهێنی جێبەجێ بکە',
|
||||
backupTitle: 'پاشەکەوتکردنی وشەی نهێنی',
|
||||
backupDescription: 'ئەم ١٢ وشەیە جزدانەکەتن. لە شوێنێکی سەلامەتدا بینووسە!',
|
||||
backupWarning:
|
||||
'گرنگ: ئەم وشانە تەنها یەک جار نیشان دەدرێن. ئەگەر لەدەست بدەیت، ناتوانیت دەستت بە جزدانەکەت بگات.',
|
||||
copiedMnemonic: 'لەبەرگیرا!',
|
||||
copyMnemonic: 'لەبەرگرتنەوە',
|
||||
conditionWrittenDown: 'ئەم ١٢ وشەم لە شوێنێکی سەلامەتدا نووسیوە',
|
||||
conditionNeverShare: 'تێدەگەم کە هەرگیز نابێت ئەم وشانە لەگەڵ کەسێکدا هاوبەش بکەم',
|
||||
conditionLossRisk: 'تێدەگەم کە ئەگەر ئەم وشانە لەدەست بدەم ناتوانم دەستم بە جزدانەکەم بگات',
|
||||
acceptAllConditions: 'هەموو مەرجەکان پەسەندبکە',
|
||||
verifyWords: 'پشتڕاستکردنەوەی وشەکان',
|
||||
reset: 'ڕیسێتکردن',
|
||||
verifyDescription: 'تکایە وشەکان بە ڕیزبەندی ڕاست ڕیزبکەرەوە',
|
||||
dropWordsHere: 'وشەکان لێرە دابنێ...',
|
||||
wrongOrder: 'ڕیزبەندی وشەکان هەڵەیە. تکایە دووبارە هەوڵبدەرەوە',
|
||||
saving: 'پاشەکەوتکردن...',
|
||||
verify: 'پشتڕاستکردنەوە',
|
||||
wordsCount: '{count}/١٢ وشە',
|
||||
walletCreated: 'جزدان دروستکرا!',
|
||||
walletReady: 'جزدانەکەت ئامادەیە',
|
||||
yourAddress: 'ناونیشانەکەت',
|
||||
getStarted: 'دەستپێبکە',
|
||||
},
|
||||
|
||||
walletImport: {
|
||||
title: 'هاوردەکردنی جزدان',
|
||||
description: 'وشەی نهێنی جزدانی ئامادەکەت بنووسە',
|
||||
seedPhraseLabel: 'وشەی نهێنی (١٢ یان ٢٤ وشە)',
|
||||
seedPhrasePlaceholder: 'وشەکان بە بۆشایی جیاکەرەوە بنووسە...',
|
||||
wordsCount: '{count} / ١٢ وشە',
|
||||
newPassword: 'وشەی نهێنی نوێ',
|
||||
seedPhraseInvalid: 'وشەی نهێنی دەبێت ١٢ یان ٢٤ وشە بێت',
|
||||
passwordInvalid: 'وشەی نهێنی نادروستە',
|
||||
passwordsMismatch: 'وشەی نهێنییەکان وەکیەک نین',
|
||||
importFailed: 'هاوردەکردن سەرکەوتوو نەبوو',
|
||||
importing: 'هاوردەکردن...',
|
||||
importButton: 'هاوردەکردن',
|
||||
},
|
||||
|
||||
walletConnect: {
|
||||
deleteTitle: 'جزدان بسڕیتەوە؟',
|
||||
deleteDescription:
|
||||
'ئەم کردارە ناگەڕێتەوە. ئەگەر وشەی نهێنیت نییە، ناتوانیت دەستت بە جزدانەکەت بگات.',
|
||||
deleteButton: 'سڕینەوە',
|
||||
openWallet: 'کردنەوەی جزدان',
|
||||
passwordLabel: 'وشەی نهێنی',
|
||||
passwordPlaceholder: 'وشەی نهێنی بنووسە',
|
||||
enterPassword: 'وشەی نهێنی بنووسە',
|
||||
wrongPassword: 'وشەی نهێنی هەڵەیە',
|
||||
connecting: 'کردنەوە...',
|
||||
connect: 'پەیوەستکردن',
|
||||
deleteWalletLink: 'سڕینەوەی جزدان',
|
||||
},
|
||||
|
||||
deposit: {
|
||||
title: 'پارەدانانی USDT',
|
||||
subtitle: 'بۆ wUSDT لەسەر Asset Hub',
|
||||
depositHistory: 'مێژووی پارەدانان',
|
||||
noDeposits: 'هێشتا هیچ پارەدانانێک نییە',
|
||||
goBack: 'گەڕانەوە',
|
||||
selectNetwork: 'تۆڕ هەڵبژێرە',
|
||||
recommended: 'پێشنیارکراو',
|
||||
warning: 'ئاگاداری!',
|
||||
example: 'بۆ نموونە: ١٠ USDT بنێرە ← ٧ wUSDT وەردەگریت ($٣ کرێ)',
|
||||
acceptTrc20: 'ڕازیم، لە ڕێگەی TRC20 بنێرە',
|
||||
important: 'گرنگ!',
|
||||
minimum: 'کەمترین: {amount} USDT',
|
||||
memoRequired: 'کۆدەکەت لە خانەی Memo/Comment بنووسە',
|
||||
onlyUsdt: 'تەنها USDT بنێرە، تۆکنی تر لەدەستدەچن',
|
||||
trc20Fee: '$٣ کرێ لە بڕەکەت دەبڕدرێتەوە',
|
||||
depositAddress: 'ناونیشانی پارەدانان',
|
||||
notAvailable: 'بەردەست نییە',
|
||||
memoLabel: 'Memo / Comment (پێویستە)',
|
||||
memoWarning: 'ئەم کۆدە لە memo بنووسە، ئەگەرنا پارەدانانەکەت ناسراونەتەوە!',
|
||||
uniqueAddress: 'ئەم ناونیشانە تایبەتە بە تۆ. پێویستی بە memo نییە.',
|
||||
howToDeposit: 'چۆن پارە دادەنێیت؟',
|
||||
stepCopyAddress: 'ناونیشانەکە لەبەربگرەوە',
|
||||
stepCopyMemo: 'کۆدی memo لەبەربگرەوە',
|
||||
stepOpenTon: 'جزدانی تێلێگرام یان جزدانەکەت بکەرەوە',
|
||||
stepOpenPolkadot: 'جزدانی Polkadot ـەکەت بکەرەوە',
|
||||
stepOpenTrc20: 'TronLink یان جزدانەکەت بکەرەوە',
|
||||
stepSendUsdt: 'USDT بنێرە بۆ ناونیشانی سەرەوە',
|
||||
stepReceive: 'wUSDT لە چەند خولەکێکدا دەگاتە ئەکاونتەکەت',
|
||||
processingTime: 'کاتی جێبەجێکردن: ~١-٥ خولەک',
|
||||
copyFailed: 'لەبەرگرتنەوە سەرکەوتوو نەبوو',
|
||||
statusPending: 'چاوەڕوان',
|
||||
statusConfirming: 'پشتڕاستکردنەوە',
|
||||
statusCompleted: 'تەواوبوو',
|
||||
statusFailed: 'سەرکەوتوو نەبوو',
|
||||
statusExpired: 'بەسەرچوو',
|
||||
viewTx: 'بینینی TX',
|
||||
trc20FeeWarning: 'کرێی تۆڕی TRC20 نزیکەی $٣ ـە. ئێمە تۆڕی TON یان Polkadot پێشنیار دەکەین.',
|
||||
},
|
||||
|
||||
p2p: {
|
||||
title: 'ئاڵوگۆڕی P2P',
|
||||
subtitle: 'ئاڵوگۆڕی کریپتۆ نێوان کەسەکان',
|
||||
firstTime: 'یەکەم جارە P2P بەکاردەهێنیت؟',
|
||||
steps: [
|
||||
'کلیک لەسەر دوگمەی خوارەوە بکە بۆ کردنەوەی وێب ئەپ',
|
||||
'ئەکاونتێک دروستبکە یان بچۆ ژوورەوە',
|
||||
'ڕێکخستنی P2P تەواو بکە',
|
||||
'دوای ڕێکخستن، دەتوانیت ڕاستەوخۆ دەستت بە P2P بگات',
|
||||
],
|
||||
note: 'وێب ئەپ لە پەنجەرەیەکی نوێدا دەکرێتەوە. ڕێکخستنەکە لەوێ تەواو بکە.',
|
||||
button: 'کردنەوەی پلاتفۆرمی P2P',
|
||||
},
|
||||
|
||||
update: {
|
||||
newVersion: 'وەشانی نوێ بەردەستە!',
|
||||
description: 'نوێکردنەوە بۆ تایبەتمەندی نوێ و چاکسازی ئاسایشی.',
|
||||
later: 'دواتر',
|
||||
updateNow: 'نوێکردنەوە',
|
||||
},
|
||||
|
||||
social: {
|
||||
followUs: 'شوێنمان بکەوە',
|
||||
stayConnected: 'پەیوەندیدار بمێنە و تازەترین هەواڵەکان وەربگرە!',
|
||||
instagram: 'وێنە و ستۆری',
|
||||
tiktok: 'ڤیدیۆی کورت',
|
||||
snapchat: 'سناپمان بۆ بنێرە!',
|
||||
telegram: 'کەناڵی فەرمی',
|
||||
twitter: 'هەواڵی ڕۆژانە',
|
||||
youtube: 'ڤیدیۆکانمان',
|
||||
facebook: 'پەیجی فەرمی',
|
||||
discord: 'کۆمەڵگاکەمان',
|
||||
},
|
||||
|
||||
errorBoundary: {
|
||||
title: 'کێشەیەک ڕوویدا',
|
||||
description: 'ببوورە، هەڵەیەکی تەکنیکی ڕوویدا. تکایە دووبارە هەوڵبدەرەوە.',
|
||||
retry: 'دووبارە هەوڵبدەرەوە',
|
||||
},
|
||||
|
||||
loadingScreen: {
|
||||
loading: 'بارکردن...',
|
||||
},
|
||||
};
|
||||
|
||||
export default ckb;
|
||||
@@ -0,0 +1,305 @@
|
||||
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',
|
||||
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',
|
||||
},
|
||||
|
||||
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...',
|
||||
},
|
||||
};
|
||||
|
||||
export default en;
|
||||
@@ -0,0 +1,305 @@
|
||||
import type { Translations } from '../types';
|
||||
|
||||
const fa: Translations = {
|
||||
nav: {
|
||||
announcements: 'اخبار',
|
||||
forum: 'فروم',
|
||||
rewards: 'جوایز',
|
||||
p2p: 'P2P',
|
||||
wallet: 'کیف پول',
|
||||
},
|
||||
|
||||
common: {
|
||||
back: 'بازگشت',
|
||||
cancel: 'لغو',
|
||||
continue: 'ادامه',
|
||||
close: 'بستن',
|
||||
copy: 'کپی',
|
||||
copied: 'کپی شد!',
|
||||
share: 'اشتراکگذاری',
|
||||
refresh: 'بازنشانی',
|
||||
retry: 'دوباره تلاش کنید',
|
||||
loading: 'در حال بارگذاری...',
|
||||
error: 'خطا',
|
||||
anonymous: 'ناشناس',
|
||||
pinned: 'سنجاق شده',
|
||||
locked: 'قفل شده',
|
||||
trending: 'داغ',
|
||||
},
|
||||
|
||||
announcements: {
|
||||
title: 'اطلاعیهها',
|
||||
readMore: 'بیشتر بخوانید',
|
||||
reactionAuthRequired: 'برای رأی دادن باید در تلگرام باشید',
|
||||
},
|
||||
|
||||
forum: {
|
||||
title: 'فروم',
|
||||
newTopic: 'موضوع جدید',
|
||||
submitting: 'در حال ارسال...',
|
||||
publish: 'انتشار',
|
||||
category: 'دستهبندی',
|
||||
topicTitle: 'عنوان',
|
||||
topicTitlePlaceholder: 'عنوان موضوع...',
|
||||
content: 'محتوا',
|
||||
contentPlaceholder: 'محتوای موضوع را بنویسید...',
|
||||
tagsLabel: 'برچسبها (با کاما جدا کنید)',
|
||||
tagsPlaceholder: 'blockchain, kurd, pez...',
|
||||
searchPlaceholder: 'جستجوی موضوعات...',
|
||||
sortRecent: 'جدید',
|
||||
sortPopular: 'محبوب',
|
||||
sortReplies: 'پاسخها',
|
||||
sortViews: 'بازدیدها',
|
||||
all: 'همه',
|
||||
replies: 'پاسخها',
|
||||
noRepliesYet: 'هنوز پاسخی نیست',
|
||||
beFirstToReply: 'اولین نفری باشید که پاسخ میدهد!',
|
||||
replyPlaceholder: 'پاسخ خود را بنویسید...',
|
||||
noTopicsFound: 'موضوعی یافت نشد',
|
||||
changeFilters: 'فیلترهای خود را تغییر دهید',
|
||||
createNewTopic: 'ایجاد موضوع جدید',
|
||||
loginToVote: 'برای رأی دادن وارد شوید',
|
||||
voteError: 'خطا در رأی دادن',
|
||||
writeReply: 'لطفاً پاسخ خود را بنویسید',
|
||||
topicLocked: 'این موضوع قفل شده است',
|
||||
replyError: 'خطا در ارسال پاسخ',
|
||||
fillAllFields: 'لطفاً تمام فیلدها را پر کنید',
|
||||
topicCreated: 'موضوع ایجاد شد!',
|
||||
topicCreateError: 'خطا در ایجاد موضوع',
|
||||
},
|
||||
|
||||
rewards: {
|
||||
title: 'جوایز',
|
||||
subtitle: 'جوایز - سیستم دعوت',
|
||||
connectWalletFirst: 'برای مشاهده دعوتها و جوایز، ابتدا کیف پول خود را متصل کنید.',
|
||||
overview: 'نمای کلی',
|
||||
referral: 'دعوت',
|
||||
scores: 'امتیازها',
|
||||
referralScore: 'امتیاز دعوت',
|
||||
maxScore: 'حداکثر امتیاز: ۵۰۰',
|
||||
referMoreTitle: 'بیشتر دعوت کنید، بیشتر کسب کنید!',
|
||||
referMoreDescription:
|
||||
'به ازای هر نفری که دعوت کنید، HEZ و PEZ به عنوان جایزه دریافت میکنید. دعوت بیشتر = جایزه بیشتر!',
|
||||
kycApproved: 'KYC تأیید شده',
|
||||
referrer: 'دعوتکننده',
|
||||
none: 'هیچ',
|
||||
invitedMe: 'مرا دعوت کرده',
|
||||
pendingReferral: 'دعوت در انتظار',
|
||||
completeKyc: 'KYC را تکمیل کنید تا دعوت تأیید شود از',
|
||||
inviteFriends: 'دوستان خود را دعوت کنید',
|
||||
yourLink: 'لینک شما',
|
||||
copySuccess: 'کپی شد!',
|
||||
copyLink: 'کپی',
|
||||
shareLink: 'اشتراکگذاری',
|
||||
scoreSystem: 'سیستم امتیازدهی',
|
||||
activeStatus: 'وضعیت فعالیت',
|
||||
timeRemaining: 'زمان: {time} باقیمانده',
|
||||
active: 'فعال',
|
||||
inactive: 'غیرفعال',
|
||||
activeDescription: 'هر ۲۴ ساعت یک بار کلیک کنید تا فعال بمانید و جوایز بیشتری کسب کنید!',
|
||||
youAreActive: 'شما فعال هستید!',
|
||||
iAmActive: 'من فعال هستم!',
|
||||
activatedAlert: 'شما اکنون فعال هستید! پس از ۲۴ ساعت دوباره کلیک کنید.',
|
||||
shareText: 'Pezkuwichain - دولت دیجیتال کردستان! از طریق لینک من بپیوندید:',
|
||||
copyAlert: 'کپی شد',
|
||||
referralCount: '{count} دعوت (KYC تأیید شده)',
|
||||
noReferrals: 'شما هنوز دعوتی ندارید',
|
||||
shareYourLink: 'لینک خود را به اشتراک بگذارید!',
|
||||
trustScore: 'امتیاز اعتماد',
|
||||
rank: 'رتبه: {rating}',
|
||||
citizen: 'شهروند',
|
||||
staking: 'سهامگذاری',
|
||||
stakingNotStarted: 'شروع نشده',
|
||||
stakingCountedInTrust: 'در امتیاز اعتماد محاسبه میشود',
|
||||
people: '{count} نفر',
|
||||
tiki: 'تیکی',
|
||||
nftRole: 'نقش NFT',
|
||||
education: 'آموزش',
|
||||
reading: 'مطالعه',
|
||||
stakingRewards: 'جوایز سهامگذاری',
|
||||
totalRewards: 'کل جوایز دریافت شده',
|
||||
recentRewards: 'جوایز اخیر',
|
||||
noRewardsYet: 'هنوز جایزهای ثبت نشده',
|
||||
scoreFormula: 'فرمول امتیاز',
|
||||
stakingZeroWarning: 'اگر سهامگذاری ۰ باشد، امتیاز اعتماد نیز ۰ است. ابتدا سهامگذاری کنید!',
|
||||
refreshScores: 'بازنشانی امتیازها',
|
||||
points: 'امتیاز',
|
||||
},
|
||||
|
||||
wallet: {
|
||||
title: 'کیف پول',
|
||||
authFailed: 'احراز هویت ناموفق',
|
||||
authDescription: 'لطفاً مطمئن شوید که این برنامه را در تلگرام باز کردهاید',
|
||||
retry: 'دوباره تلاش کنید',
|
||||
},
|
||||
|
||||
walletSetup: {
|
||||
officialWallet: 'کیف پول رسمی Pezkuwichain',
|
||||
createNew: 'ایجاد کیف پول جدید',
|
||||
createNewDesc: 'ایجاد کیف پول جدید با عبارت بازیابی',
|
||||
importWallet: 'وارد کردن کیف پول',
|
||||
importWalletDesc: 'استفاده از عبارت بازیابی موجود',
|
||||
securityNote:
|
||||
'کیف پول شما به صورت امن در دستگاه شما ذخیره میشود. ما هرگز به کلیدهای شما دسترسی نداریم.',
|
||||
},
|
||||
|
||||
walletCreate: {
|
||||
setPassword: 'تنظیم رمز عبور',
|
||||
passwordDescription: 'این رمز عبور برای باز کردن قفل کیف پول شما استفاده میشود',
|
||||
passwordLabel: 'رمز عبور',
|
||||
passwordPlaceholder: 'حداقل ۱۲ کاراکتر',
|
||||
confirmPasswordLabel: 'تأیید رمز عبور',
|
||||
confirmPasswordPlaceholder: 'رمز عبور خود را تأیید کنید',
|
||||
passwordRequirements: 'الزامات رمز عبور:',
|
||||
ruleMinLength: 'حداقل ۱۲ کاراکتر',
|
||||
ruleLowercase: 'حداقل ۱ حرف کوچک (a-z)',
|
||||
ruleUppercase: 'حداقل ۱ حرف بزرگ (A-Z)',
|
||||
ruleNumber: 'حداقل ۱ عدد (0-9)',
|
||||
ruleSpecialChar: 'حداقل ۱ کاراکتر ویژه (!@#$%...)',
|
||||
rulePasswordsMatch: 'رمزهای عبور مطابقت دارند',
|
||||
walletServiceNotReady: 'سرویس کیف پول آماده نیست. لطفاً صبر کنید.',
|
||||
passwordRequirementsNotMet: 'لطفاً تمام الزامات رمز عبور را رعایت کنید',
|
||||
walletCreationFailed: 'ایجاد کیف پول ناموفق بود. لطفاً دوباره تلاش کنید',
|
||||
preparing: 'در حال آمادهسازی...',
|
||||
creating: 'در حال ایجاد...',
|
||||
meetPasswordRequirements: 'الزامات رمز عبور را رعایت کنید',
|
||||
backupTitle: 'پشتیبانگیری از عبارت بازیابی',
|
||||
backupDescription: 'این ۱۲ کلمه کیف پول شما هستند. آنها را در جای امنی بنویسید!',
|
||||
backupWarning:
|
||||
'مهم: این کلمات فقط یک بار نمایش داده میشوند. اگر آنها را گم کنید، نمیتوانید به کیف پول خود دسترسی پیدا کنید.',
|
||||
copiedMnemonic: 'کپی شد!',
|
||||
copyMnemonic: 'کپی',
|
||||
conditionWrittenDown: 'این ۱۲ کلمه را در جای امنی نوشتهام',
|
||||
conditionNeverShare: 'میدانم که هرگز نباید این کلمات را با کسی به اشتراک بگذارم',
|
||||
conditionLossRisk: 'میدانم که اگر این کلمات را گم کنم نمیتوانم به کیف پولم دسترسی پیدا کنم',
|
||||
acceptAllConditions: 'پذیرش تمام شرایط',
|
||||
verifyWords: 'تأیید کلمات',
|
||||
reset: 'بازنشانی',
|
||||
verifyDescription: 'لطفاً کلمات را به ترتیب صحیح مرتب کنید',
|
||||
dropWordsHere: 'کلمات را اینجا قرار دهید...',
|
||||
wrongOrder: 'ترتیب کلمات اشتباه است. لطفاً دوباره تلاش کنید',
|
||||
saving: 'در حال ذخیره...',
|
||||
verify: 'تأیید',
|
||||
wordsCount: '{count}/۱۲ کلمه',
|
||||
walletCreated: 'کیف پول ایجاد شد!',
|
||||
walletReady: 'کیف پول شما آماده است',
|
||||
yourAddress: 'آدرس شما',
|
||||
getStarted: 'شروع کنید',
|
||||
},
|
||||
|
||||
walletImport: {
|
||||
title: 'وارد کردن کیف پول',
|
||||
description: 'عبارت بازیابی کیف پول موجود خود را وارد کنید',
|
||||
seedPhraseLabel: 'عبارت بازیابی (۱۲ یا ۲۴ کلمه)',
|
||||
seedPhrasePlaceholder: 'کلمات خود را با فاصله وارد کنید...',
|
||||
wordsCount: '{count} / ۱۲ کلمه',
|
||||
newPassword: 'رمز عبور جدید',
|
||||
seedPhraseInvalid: 'عبارت بازیابی باید ۱۲ یا ۲۴ کلمه باشد',
|
||||
passwordInvalid: 'رمز عبور نامعتبر است',
|
||||
passwordsMismatch: 'رمزهای عبور مطابقت ندارند',
|
||||
importFailed: 'وارد کردن ناموفق بود',
|
||||
importing: 'در حال وارد کردن...',
|
||||
importButton: 'وارد کردن',
|
||||
},
|
||||
|
||||
walletConnect: {
|
||||
deleteTitle: 'حذف کیف پول؟',
|
||||
deleteDescription:
|
||||
'این عمل قابل بازگشت نیست. اگر عبارت بازیابی خود را ندارید، نمیتوانید به کیف پول خود دسترسی پیدا کنید.',
|
||||
deleteButton: 'حذف',
|
||||
openWallet: 'باز کردن کیف پول',
|
||||
passwordLabel: 'رمز عبور',
|
||||
passwordPlaceholder: 'رمز عبور خود را وارد کنید',
|
||||
enterPassword: 'رمز عبور خود را وارد کنید',
|
||||
wrongPassword: 'رمز عبور اشتباه است',
|
||||
connecting: 'در حال باز کردن...',
|
||||
connect: 'اتصال',
|
||||
deleteWalletLink: 'حذف کیف پول',
|
||||
},
|
||||
|
||||
deposit: {
|
||||
title: 'واریز USDT',
|
||||
subtitle: 'برای wUSDT در Asset Hub',
|
||||
depositHistory: 'تاریخچه واریز',
|
||||
noDeposits: 'هنوز واریزی انجام نشده',
|
||||
goBack: 'بازگشت',
|
||||
selectNetwork: 'انتخاب شبکه',
|
||||
recommended: 'پیشنهادی',
|
||||
warning: 'هشدار!',
|
||||
example: 'مثال: ارسال ۱۰ USDT \u2192 دریافت ۷ wUSDT (کارمزد ۳ دلار)',
|
||||
acceptTrc20: 'قبول میکنم، از طریق TRC20 ارسال کنید',
|
||||
important: 'مهم!',
|
||||
minimum: 'حداقل: {amount} USDT',
|
||||
memoRequired: 'کد خود را در فیلد یادداشت/توضیحات بنویسید',
|
||||
onlyUsdt: 'فقط USDT ارسال کنید، توکنهای دیگر از بین میروند',
|
||||
trc20Fee: 'کارمزد ۳ دلار از مبلغ شما کسر میشود',
|
||||
depositAddress: 'آدرس واریز',
|
||||
notAvailable: 'در دسترس نیست',
|
||||
memoLabel: 'یادداشت / توضیحات (الزامی)',
|
||||
memoWarning: 'این کد را در یادداشت بنویسید، در غیر این صورت واریز شما شناسایی نمیشود!',
|
||||
uniqueAddress: 'این آدرس مختص شماست. نیازی به یادداشت نیست.',
|
||||
howToDeposit: 'چگونه واریز کنم؟',
|
||||
stepCopyAddress: 'آدرس را کپی کنید',
|
||||
stepCopyMemo: 'کد یادداشت را کپی کنید',
|
||||
stepOpenTon: 'کیف پول تلگرام یا کیف پول خود را باز کنید',
|
||||
stepOpenPolkadot: 'کیف پول Polkadot خود را باز کنید',
|
||||
stepOpenTrc20: 'TronLink یا کیف پول خود را باز کنید',
|
||||
stepSendUsdt: 'USDT را به آدرس بالا ارسال کنید',
|
||||
stepReceive: 'wUSDT ظرف چند دقیقه در حساب شما خواهد بود',
|
||||
processingTime: 'زمان پردازش: حدود ۱ تا ۵ دقیقه',
|
||||
copyFailed: 'کپی ناموفق بود',
|
||||
statusPending: 'در انتظار',
|
||||
statusConfirming: 'در حال تأیید',
|
||||
statusCompleted: 'تکمیل شده',
|
||||
statusFailed: 'ناموفق',
|
||||
statusExpired: 'منقضی شده',
|
||||
viewTx: 'مشاهده تراکنش',
|
||||
trc20FeeWarning: 'کارمزد شبکه TRC20 حدود ۳ دلار است. شبکه TON یا Polkadot پیشنهاد میشود.',
|
||||
},
|
||||
|
||||
p2p: {
|
||||
title: 'صرافی P2P',
|
||||
subtitle: 'معامله رمزارز به صورت همتا به همتا',
|
||||
firstTime: 'اولین بار است که از P2P استفاده میکنید؟',
|
||||
steps: [
|
||||
'روی دکمه زیر کلیک کنید تا برنامه وب باز شود',
|
||||
'یک حساب بسازید یا وارد شوید',
|
||||
'فرآیند راهاندازی P2P را تکمیل کنید',
|
||||
'پس از راهاندازی، میتوانید مستقیماً به P2P دسترسی پیدا کنید',
|
||||
],
|
||||
note: 'برنامه وب در پنجره جدیدی باز میشود. فرآیند ثبتنام را در آنجا تکمیل کنید.',
|
||||
button: 'باز کردن پلتفرم P2P',
|
||||
},
|
||||
|
||||
update: {
|
||||
newVersion: 'نسخه جدید موجود است!',
|
||||
description: 'برای ویژگیهای جدید و رفع مشکلات امنیتی بهروزرسانی کنید.',
|
||||
later: 'بعداً',
|
||||
updateNow: 'بهروزرسانی',
|
||||
},
|
||||
|
||||
social: {
|
||||
followUs: 'ما را دنبال کنید',
|
||||
stayConnected: 'در ارتباط باشید و آخرین اخبار را دریافت کنید!',
|
||||
instagram: 'عکسها و استوریها',
|
||||
tiktok: 'ویدیوهای کوتاه',
|
||||
snapchat: 'اسنپ بفرستید!',
|
||||
telegram: 'کانال رسمی',
|
||||
twitter: 'اخبار روزانه',
|
||||
youtube: 'ویدیوهای ما',
|
||||
facebook: 'صفحه رسمی',
|
||||
discord: 'جامعه ما',
|
||||
},
|
||||
|
||||
errorBoundary: {
|
||||
title: 'مشکلی پیش آمد',
|
||||
description: 'متأسفیم، یک خطای فنی رخ داد. لطفاً دوباره تلاش کنید.',
|
||||
retry: 'دوباره تلاش کنید',
|
||||
},
|
||||
|
||||
loadingScreen: {
|
||||
loading: 'در حال بارگذاری...',
|
||||
},
|
||||
};
|
||||
|
||||
export default fa;
|
||||
@@ -0,0 +1,320 @@
|
||||
import type { Translations } from '../types';
|
||||
|
||||
const krd: Translations = {
|
||||
nav: {
|
||||
announcements: 'Ragihandin',
|
||||
forum: 'Forum',
|
||||
rewards: 'Xelat',
|
||||
p2p: 'P2P',
|
||||
wallet: 'Ber\u00eek',
|
||||
},
|
||||
|
||||
common: {
|
||||
back: 'Pa\u015f',
|
||||
cancel: 'Betal',
|
||||
continue: 'Berdewam',
|
||||
close: 'Bigire',
|
||||
copy: 'Kop\u00ee bike',
|
||||
copied: 'Kop\u00ee b\u00fb!',
|
||||
share: 'Parve bike',
|
||||
refresh: 'N\u00fbve bike',
|
||||
retry: 'D\u00eesa bicerb\u00eene',
|
||||
loading: 'T\u00ea barkirin...',
|
||||
error: '\u00c7ewt\u00ee',
|
||||
anonymous: 'Anonymous',
|
||||
pinned: 'Pinned',
|
||||
locked: 'Kil\u00eetk\u00eer\u00ee',
|
||||
trending: 'Trending',
|
||||
},
|
||||
|
||||
announcements: {
|
||||
title: 'Ragihandin',
|
||||
readMore: 'Z\u00eadetir bixw\u00eene',
|
||||
reactionAuthRequired: 'Ji bo dengdan\u00ea div\u00ea tu di Telegram\u00ea de b\u00ee',
|
||||
},
|
||||
|
||||
forum: {
|
||||
title: 'Forum',
|
||||
newTopic: 'Mijara N\u00fb',
|
||||
submitting: 'T\u00ea \u015fandin...',
|
||||
publish: 'Biwe\u015f\u00eene',
|
||||
category: 'Kategor\u00ee',
|
||||
topicTitle: 'Sernav',
|
||||
topicTitlePlaceholder: 'Nav\u00ea mijar\u00ea...',
|
||||
content: 'Naverok',
|
||||
contentPlaceholder: 'Naveroka mijar\u00ea bin\u00eev\u00eese...',
|
||||
tagsLabel: 'Et\u00eeket (bi virgul\u00ea cuda bike)',
|
||||
tagsPlaceholder: 'blockchain, kurd, pez...',
|
||||
searchPlaceholder: 'Mijar bigere...',
|
||||
sortRecent: 'N\u00fb',
|
||||
sortPopular: 'Populer',
|
||||
sortReplies: 'Bersiv',
|
||||
sortViews: 'D\u00eetin',
|
||||
all: 'Hem\u00fb',
|
||||
replies: 'Bersiv',
|
||||
noRepliesYet: 'H\u00eaj bersiv tune ye',
|
||||
beFirstToReply: 'Yekem\u00een bersiv\u00ea tu bide!',
|
||||
replyPlaceholder: 'Bersiva xwe bin\u00eev\u00eese...',
|
||||
noTopicsFound: 'Mijar nehat d\u00eetin',
|
||||
changeFilters: 'Filter\u00ean xwe biguh\u00eare',
|
||||
createNewTopic: 'Mijara N\u00fb Biaf\u00eer\u00eene',
|
||||
loginToVote: 'Ji bo dengdan\u00ea t\u00eakeve',
|
||||
voteError: '\u00c7ewt\u00ee di dengdan\u00ea de',
|
||||
writeReply: 'Ji kerema xwe bersiva xwe bin\u00eev\u00eese',
|
||||
topicLocked: 'Ev mijar kil\u00eetk\u00eer\u00ee ye',
|
||||
replyError: '\u00c7ewt\u00ee di \u015fandina bersiv\u00ea de',
|
||||
fillAllFields: 'Ji kerema xwe hem\u00fb qadan tije bike',
|
||||
topicCreated: 'Mijar hat afirandin!',
|
||||
topicCreateError: '\u00c7ewt\u00ee di afirandina mijar\u00ea de',
|
||||
},
|
||||
|
||||
rewards: {
|
||||
title: 'Xelat',
|
||||
subtitle: 'Xelat - Referral System',
|
||||
connectWalletFirst:
|
||||
'Ji bo d\u00eetina referral \u00fb xelat\u00ean xwe, ber\u00ee her ti\u015ft\u00ee c\u00eezdan\u00ea xwe gir\u00eade.',
|
||||
overview: 'Ge\u015fb\u00een',
|
||||
referral: 'Referral',
|
||||
scores: 'Xal',
|
||||
referralScore: 'P\u00fbana Referral',
|
||||
maxScore: 'Max p\u00fban: 500',
|
||||
referMoreTitle:
|
||||
'\u0632\u06cc\u0627\u062a\u0631 \u0695\u06cc\u0641\u06d5\u0631 \u0628\u06a9\u06d5\u060c \u0632\u06cc\u0627\u062a\u0631 \u0642\u0627\u0632\u0627\u0646\u062c \u0628\u06a9\u06d5!',
|
||||
referMoreDescription:
|
||||
'\u0647\u06d5\u0631 \u06a9\u06d5\u0633\u06ce\u06a9 \u0628\u0647\u06ce\u0646\u06cc\u062a\u060c HEZ \u0648 PEZ \u0648\u06d5\u06a9 \u062e\u06d5\u06b5\u0627\u062a \u0648\u06d5\u0631\u062f\u06d5\u06af\u0631\u06cc\u062a. \u0632\u06cc\u0627\u062a\u0631 \u0695\u06cc\u0641\u06d5\u0631 = \u0632\u06cc\u0627\u062a\u0631 \u062e\u06d5\u06b5\u0627\u062a!',
|
||||
kycApproved: 'KYC pejirand\u00ee',
|
||||
referrer: 'Referrer',
|
||||
none: 'Tune',
|
||||
invitedMe: 'Min vexwand',
|
||||
pendingReferral: 'Referral li bend\u00ea',
|
||||
completeKyc: 'KYC temam bike ji bo pejirandina referral ji',
|
||||
inviteFriends: 'Heval\u00ean xwe vexw\u00eene',
|
||||
yourLink: 'L\u00eenka te',
|
||||
copySuccess: 'Kop\u00ee b\u00fb!',
|
||||
copyLink: 'Kop\u00ee bike',
|
||||
shareLink: 'Parve bike',
|
||||
scoreSystem: 'S\u00eestema p\u00fbanan',
|
||||
activeStatus: 'Rew\u015fa Akt\u00eevb\u00fbn\u00ea',
|
||||
timeRemaining: 'Dem: {time} maye',
|
||||
active: 'Akt\u00eev',
|
||||
inactive: 'Ne Akt\u00eev',
|
||||
activeDescription:
|
||||
'Her 24 saet carek\u00ea bikirt\u00eene da ku akt\u00eev bim\u00een\u00ee \u00fb xelat\u00ean z\u00eadetir qezenc bik\u00ee!',
|
||||
youAreActive: 'Tu Akt\u00eev \u00ee!',
|
||||
iAmActive: 'Ez Akt\u00eev im!',
|
||||
activatedAlert: 'Tu niha akt\u00eev \u00ee! 24 saet pa\u015f\u00ea d\u00eesa bikirt\u00eene.',
|
||||
shareText:
|
||||
'Pezkuwichain - Dewleta D\u00eej\u00eetal a Kurd! Bi l\u00eenka min ve tev li me bibe:',
|
||||
copyAlert: 'Kop\u00ee b\u00fb',
|
||||
referralCount: '{count} referral (KYC pejirand\u00ee)',
|
||||
noReferrals: 'H\u00eaj referral\u00ean te tune ne',
|
||||
shareYourLink: 'L\u00eenka xwe parve bike!',
|
||||
trustScore: 'P\u00fbana P\u00eabaweriy\u00ea (Trust)',
|
||||
rank: 'R\u00eaze: {rating}',
|
||||
citizen: 'Welat\u00ee',
|
||||
staking: 'Staking',
|
||||
stakingNotStarted: 'Nehat\u00eeye destp\u00eakirin',
|
||||
stakingCountedInTrust: 'Di Trust de t\u00ea hesibandin',
|
||||
people: '{count} kes',
|
||||
tiki: 'Tiki',
|
||||
nftRole: 'Rola NFT',
|
||||
education: 'Perwerde',
|
||||
reading: 'Xwendin',
|
||||
stakingRewards: 'Xelat\u00ean Staking',
|
||||
totalRewards: 'Tevah\u00eeya xelat\u00ean wergirt\u00ee',
|
||||
recentRewards: 'Xelat\u00ean daw\u00ee',
|
||||
noRewardsYet: 'H\u00eaj xelatek nehat\u00eeye tomark\u00eerin',
|
||||
scoreFormula: 'Form\u00fbla P\u00fban\u00ea',
|
||||
stakingZeroWarning:
|
||||
'Staking 0 be, Trust p\u00fban j\u00ee 0 dibe. Ber\u00ee her ti\u015ft\u00ee stake bike!',
|
||||
refreshScores: 'P\u00fbanan N\u00fbve Bike',
|
||||
points: 'p\u00fban',
|
||||
},
|
||||
|
||||
wallet: {
|
||||
title: 'Ber\u00eek',
|
||||
authFailed: 'Teketin Tek Cu',
|
||||
authDescription: 'Ji kerema xwe pistrast bikin ku hun ve app-e di nav Telegram de vedikin',
|
||||
retry: 'Disa Biceribine',
|
||||
},
|
||||
|
||||
walletSetup: {
|
||||
officialWallet: 'Ber\u00eeka ferm\u00ee ya Pezkuwichain',
|
||||
createNew: 'Wallet N\u00fb \u00c7\u00eabike',
|
||||
createNewDesc: "Wallet'ek\u00ee n\u00fb bi seed phrase \u00e7\u00eabike",
|
||||
importWallet: 'Wallet Import Bike',
|
||||
importWalletDesc: "Seed phrase'\u00ea xwe y\u00ea hey\u00ee bi kar b\u00eene",
|
||||
securityNote:
|
||||
"Wallet'\u00ea te bi ewleh\u00ee li c\u00eehaza te t\u00ea hilan\u00een. Em tu car\u00ee gih\u00ee\u015ftina mift\u00eey\u00ean te tune.",
|
||||
},
|
||||
|
||||
walletCreate: {
|
||||
setPassword: '\u015e\u00eefre (Password) Diyar Bike',
|
||||
passwordDescription:
|
||||
"Ev \u015f\u00eefre (password) d\u00ea ji bo vekirina wallet'\u00ea were bikar\u00een\u00een",
|
||||
passwordLabel: '\u015e\u00eefre (Password)',
|
||||
passwordPlaceholder: 'Her\u00ee k\u00eam 12 t\u00eep (min 12 characters)',
|
||||
confirmPasswordLabel: '\u015e\u00eefre Dubare (Confirm Password)',
|
||||
confirmPasswordPlaceholder: '\u015e\u00eefre dubare bin\u00eev\u00eese (confirm password)',
|
||||
passwordRequirements: '\u015eert\u00ean \u015e\u00eefre (Password):',
|
||||
ruleMinLength: 'Her\u00ee k\u00eam 12 t\u00eep (min 12 characters)',
|
||||
ruleLowercase: 'Her\u00ee k\u00eam 1 t\u00eepa bi\u00e7\u00fbk (a-z)',
|
||||
ruleUppercase: 'Her\u00ee k\u00eam 1 t\u00eepa mezin (A-Z)',
|
||||
ruleNumber: 'Her\u00ee k\u00eam 1 hejmar (0-9)',
|
||||
ruleSpecialChar: 'Her\u00ee k\u00eam 1 sembola taybet\u00ee (!@#$%...)',
|
||||
rulePasswordsMatch: '\u015e\u00eefre (password) hev digirin',
|
||||
walletServiceNotReady: 'Wallet service amade n\u00eene. Ji kerema xwe bisekinin.',
|
||||
passwordRequirementsNotMet:
|
||||
'Ji kerema xwe hem\u00fb \u015fert\u00ean \u015f\u00eefre (password) bic\u00eeh b\u00eenin',
|
||||
walletCreationFailed:
|
||||
'Wallet \u00e7\u00eaneb\u00fb. Ji kerema xwe d\u00eesa bicerb\u00een\u00een',
|
||||
preparing: 'T\u00ea amadekirin...',
|
||||
creating: 'T\u00ea \u00e7\u00eakirin...',
|
||||
meetPasswordRequirements: '\u015eert\u00ean \u015f\u00eefre (password) bic\u00eeh b\u00eenin',
|
||||
backupTitle: 'Seed Phrase Pa\u015fguh Bike',
|
||||
backupDescription:
|
||||
"Ev 12 peyv wallet'\u00ea te ne. Wan li cihek\u00ee ewle bin\u00eev\u00eese!",
|
||||
backupWarning:
|
||||
"Gir\u00eeng: Ev peyvan ten\u00ea yek car t\u00eane xuyang kirin. Eger te ev peyv winda bikin, tu nikar\u00ee gih\u00ee\u015ftina wallet'\u00ea xwe bist\u00een\u00ee.",
|
||||
copiedMnemonic: 'Hat kop\u00eekirin!',
|
||||
copyMnemonic: 'Kop\u00ee Bike',
|
||||
conditionWrittenDown: 'Min ev 12 peyv li cihek\u00ee ewle niv\u00eesandine',
|
||||
conditionNeverShare: 'Ez f\u00eam dikim ku ez nikarim ev peyvan bi kes\u00ee re parve bikim',
|
||||
conditionLossRisk:
|
||||
"Ez f\u00eam dikim ku eger van peyvan winda bikim ez nikarim gih\u00ee\u015ftina wallet'\u00ea xwe bist\u00eenim",
|
||||
acceptAllConditions: 'Hem\u00fb \u015fertan bipejirinIn',
|
||||
verifyWords: 'Peyvan Verast Bike',
|
||||
reset: 'Reset',
|
||||
verifyDescription: 'Ji kerema xwe peyvan bi r\u00eaza rast bixin nav qut\u00eek\u00ea',
|
||||
dropWordsHere: 'Peyvan li vir bixin...',
|
||||
wrongOrder: 'R\u00eaza peyvan ne rast e. Ji kerema xwe d\u00eesa bicerb\u00een\u00een',
|
||||
saving: 'T\u00ea tomark\u00eerin...',
|
||||
verify: 'Verast Bike',
|
||||
wordsCount: '{count}/12 peyv',
|
||||
walletCreated: 'Wallet Hat \u00c7\u00eakirin!',
|
||||
walletReady: "Wallet'\u00ea te amade ye",
|
||||
yourAddress: 'Navnishana te',
|
||||
getStarted: 'Dest P\u00ea Bike',
|
||||
},
|
||||
|
||||
walletImport: {
|
||||
title: 'Wallet Import Bike',
|
||||
description: "Seed phrase'\u00ea wallet'\u00ea xwe y\u00ea hey\u00ee bin\u00eev\u00eese",
|
||||
seedPhraseLabel: 'Seed Phrase (12 an 24 peyv)',
|
||||
seedPhrasePlaceholder: 'Peyv\u00ean xwe bi valah\u00ee cuda bin\u00eev\u00eese...',
|
||||
wordsCount: '{count} / 12 peyv',
|
||||
newPassword: '\u015e\u00eefreya N\u00fb (New Password)',
|
||||
seedPhraseInvalid: 'Seed phrase div\u00ea 12 an 24 peyv be',
|
||||
passwordInvalid: '\u015e\u00eefre (password) ne derbasdar e',
|
||||
passwordsMismatch: '\u015e\u00eefre (password) hev nagirin',
|
||||
importFailed: 'Import neseret\u00ee',
|
||||
importing: 'T\u00ea import kirin...',
|
||||
importButton: 'Import Bike',
|
||||
},
|
||||
|
||||
walletConnect: {
|
||||
deleteTitle: 'Wallet J\u00ea Bibe?',
|
||||
deleteDescription:
|
||||
"Ev \u00e7alak\u00ee nay\u00ea pa\u015fveki\u015fandin. Eger seed phrase'\u00ea te tune be, tu nikar\u00ee gih\u00ee\u015ftina wallet'\u00ea xwe bist\u00een\u00ee.",
|
||||
deleteButton: 'J\u00ea Bibe',
|
||||
openWallet: 'Wallet Veke',
|
||||
passwordLabel: '\u015e\u00eefre (Password)',
|
||||
passwordPlaceholder: '\u015e\u00eefre (password) bin\u00eev\u00eese',
|
||||
enterPassword: '\u015e\u00eefre (password) bin\u00eev\u00eese',
|
||||
wrongPassword: '\u015e\u00eefre (password) \u00e7ewt e',
|
||||
connecting: 'T\u00ea vekirin...',
|
||||
connect: 'Connect',
|
||||
deleteWalletLink: 'Wallet j\u00ea bibe',
|
||||
},
|
||||
|
||||
deposit: {
|
||||
title: 'USDT Depo Bike',
|
||||
subtitle: 'Bo wUSDT li Asset Hub',
|
||||
depositHistory: 'D\u00eeroka Depoyan',
|
||||
noDeposits: 'H\u00een depo tune',
|
||||
goBack: 'Vegere',
|
||||
selectNetwork: 'Tor\u00ea Hilbij\u00eare',
|
||||
recommended: 'P\u00ea\u015fniyar',
|
||||
warning: 'Dikkkat!',
|
||||
example: 'M\u00eenak: 10 USDT bi\u015f\u00eene \u2192 7 wUSDT werbigire ($3 masraf)',
|
||||
acceptTrc20: 'Qeb\u00fbl dikim, bi TRC20 bi\u015f\u00eene',
|
||||
important: 'Gir\u00eeng!',
|
||||
minimum: 'K\u00eamtir\u00een: {amount} USDT',
|
||||
memoRequired: 'Memo/Comment qada de koda xwe bin\u00eev\u00eese',
|
||||
onlyUsdt: 'Ten\u00ea USDT bi\u015f\u00eene, token\u00ean din winda dibin',
|
||||
trc20Fee: '$3 masraf d\u00ea ji m\u00eeqdara we b\u00ea k\u00eamkirin',
|
||||
depositAddress: 'Navnishana Depoy\u00ea',
|
||||
notAvailable: 'Amade n\u00eene',
|
||||
memoLabel: 'Memo / Comment (P\u00caW\u00ceST)',
|
||||
memoWarning:
|
||||
'V\u00ea kod\u00ea di memo de bin\u00eev\u00eese, wek\u00ee din depoya te nay\u00ea nas kirin!',
|
||||
uniqueAddress: 'Ev navnishana ten\u00ea ya te ye. Memo ne p\u00eaw\u00eest e.',
|
||||
howToDeposit: '\u00c7awa Depo Bikim?',
|
||||
stepCopyAddress: 'Navnishana kop\u00ee bike',
|
||||
stepCopyMemo: 'Memo kod\u00ea kop\u00ee bike',
|
||||
stepOpenTon: 'Telegram Wallet an c\u00eezdana xwe veke',
|
||||
stepOpenPolkadot: 'Polkadot c\u00eezdana xwe veke',
|
||||
stepOpenTrc20: 'TronLink an c\u00eezdana xwe veke',
|
||||
stepSendUsdt: 'USDT bi\u015f\u00eene navnishana jor\u00een',
|
||||
stepReceive: 'wUSDT d\u00ea di nav \u00e7end h\u00fbrdeman de li hesab\u00ea te be',
|
||||
processingTime: 'Dema p\u00eavajoy\u00ea: ~1-5 h\u00fbrdem',
|
||||
copyFailed: 'Kop\u00ee nekir',
|
||||
statusPending: 'Li benda',
|
||||
statusConfirming: 'T\u00ea pejirandin',
|
||||
statusCompleted: 'Qediya',
|
||||
statusFailed: 'Neseret\u00ee',
|
||||
statusExpired: 'Dema w\u00ea derbas b\u00fb',
|
||||
viewTx: 'TX bib\u00eene',
|
||||
trc20FeeWarning:
|
||||
'Mesrefa tora TRC20 bi qas\u00ee $3 ye. Em tora TON an Polkadot p\u00ea\u015fniyar dikin.',
|
||||
},
|
||||
|
||||
p2p: {
|
||||
title: 'P2P Dan\u00fbstandin',
|
||||
subtitle: 'Dan\u00fbstandina kr\u00eeto di navbera kesan de',
|
||||
firstTime: 'Cara yekem P2P bikar t\u00eenin?',
|
||||
steps: [
|
||||
'Li bi\u015fkoja j\u00ear\u00een bikirt\u00eenin da ku malpera web\u00ea vebike',
|
||||
'Hesabek \u00e7\u00eabikin an t\u00eakevin',
|
||||
'P\u00eav ajoya sazkirina P2P temam bikin',
|
||||
'Pi\u015ft\u00ee sazkirin\u00ea, h\u00fbn dikarin rasterast bigih\u00eejin P2P',
|
||||
],
|
||||
note: 'Malpera web\u00ea di pencereyek n\u00fb de vedibe. P\u00eav ajoya qeydk\u00eerin\u00ea li wir temam bikin.',
|
||||
button: 'P2P Veke',
|
||||
},
|
||||
|
||||
update: {
|
||||
newVersion: 'Guhertoya n\u00fb heye!',
|
||||
description:
|
||||
'Ji bo taybetmend\u00eey\u00ean n\u00fb \u00fb rastkirin\u00ean ewlehiy\u00ea n\u00fbve bike.',
|
||||
later: 'Pa\u015f\u00ea',
|
||||
updateNow: 'N\u00fbve bike',
|
||||
},
|
||||
|
||||
social: {
|
||||
followUs: 'Me bi\u015fop\u00eene',
|
||||
stayConnected:
|
||||
'Bi me re t\u00eak\u00eel\u00eey\u00ea ragire \u00fb n\u00fb\u00e7ey\u00ean her\u00ee daw\u00ee bist\u00eene!',
|
||||
instagram: 'W\u00eane \u00fb Story',
|
||||
tiktok: 'V\u00eedyoy\u00ean kurt',
|
||||
snapchat: 'Snap bike!',
|
||||
telegram: 'Kanala ferm\u00ee',
|
||||
twitter: 'N\u00fb\u00e7ey\u00ean rojane',
|
||||
youtube: 'V\u00eedyoy\u00ean me',
|
||||
facebook: 'R\u00fbpela ferm\u00ee',
|
||||
discord: 'Civaka me',
|
||||
},
|
||||
|
||||
errorBoundary: {
|
||||
title: 'Ti\u015ftek \u00e7ewt \u00e7\u00eab\u00fb',
|
||||
description:
|
||||
'Bibore, pirsgir\u00eakek tekn\u00eek\u00ee derket. Ji kerema xwe d\u00eesa bicerb\u00eene.',
|
||||
retry: 'D\u00eesa bicerb\u00eene',
|
||||
},
|
||||
|
||||
loadingScreen: {
|
||||
loading: 'T\u00ea barkirin...',
|
||||
},
|
||||
};
|
||||
|
||||
export default krd;
|
||||
@@ -0,0 +1,305 @@
|
||||
import type { Translations } from '../types';
|
||||
|
||||
const tr: Translations = {
|
||||
nav: {
|
||||
announcements: 'Haberler',
|
||||
forum: 'Forum',
|
||||
rewards: 'Ödüller',
|
||||
p2p: 'P2P',
|
||||
wallet: 'Cüzdan',
|
||||
},
|
||||
|
||||
common: {
|
||||
back: 'Geri',
|
||||
cancel: 'İptal',
|
||||
continue: 'Devam',
|
||||
close: 'Kapat',
|
||||
copy: 'Kopyala',
|
||||
copied: 'Kopyalandı!',
|
||||
share: 'Paylaş',
|
||||
refresh: 'Yenile',
|
||||
retry: 'Tekrar dene',
|
||||
loading: 'Yükleniyor...',
|
||||
error: 'Hata',
|
||||
anonymous: 'Anonim',
|
||||
pinned: 'Sabitlenmiş',
|
||||
locked: 'Kilitli',
|
||||
trending: 'Trend',
|
||||
},
|
||||
|
||||
announcements: {
|
||||
title: 'Duyurular',
|
||||
readMore: 'Devamını oku',
|
||||
reactionAuthRequired: "Oy vermek için Telegram'da olmalısınız",
|
||||
},
|
||||
|
||||
forum: {
|
||||
title: 'Forum',
|
||||
newTopic: 'Yeni Konu',
|
||||
submitting: 'Gönderiliyor...',
|
||||
publish: 'Yayınla',
|
||||
category: 'Kategori',
|
||||
topicTitle: 'Başlık',
|
||||
topicTitlePlaceholder: 'Konu başlığı...',
|
||||
content: 'İçerik',
|
||||
contentPlaceholder: 'Konu içeriğini yazın...',
|
||||
tagsLabel: 'Etiketler (virgülle ayırın)',
|
||||
tagsPlaceholder: 'blockchain, kurd, pez...',
|
||||
searchPlaceholder: 'Konu ara...',
|
||||
sortRecent: 'Yeni',
|
||||
sortPopular: 'Popüler',
|
||||
sortReplies: 'Yanıtlar',
|
||||
sortViews: 'Görüntüleme',
|
||||
all: 'Tümü',
|
||||
replies: 'Yanıtlar',
|
||||
noRepliesYet: 'Henüz yanıt yok',
|
||||
beFirstToReply: 'İlk yanıtı siz verin!',
|
||||
replyPlaceholder: 'Yanıtınızı yazın...',
|
||||
noTopicsFound: 'Konu bulunamadı',
|
||||
changeFilters: 'Filtrelerinizi değiştirin',
|
||||
createNewTopic: 'Yeni Konu Oluştur',
|
||||
loginToVote: 'Oy vermek için giriş yapın',
|
||||
voteError: 'Oy verme hatası',
|
||||
writeReply: 'Lütfen yanıtınızı yazın',
|
||||
topicLocked: 'Bu konu kilitli',
|
||||
replyError: 'Yanıt gönderme hatası',
|
||||
fillAllFields: 'Lütfen tüm alanları doldurun',
|
||||
topicCreated: 'Konu oluşturuldu!',
|
||||
topicCreateError: 'Konu oluşturma hatası',
|
||||
},
|
||||
|
||||
rewards: {
|
||||
title: 'Ödüller',
|
||||
subtitle: 'Ödüller - Davet Sistemi',
|
||||
connectWalletFirst: 'Davetlerinizi ve ödüllerinizi görmek için önce cüzdanınızı bağlayın.',
|
||||
overview: 'Genel Bakış',
|
||||
referral: 'Davet',
|
||||
scores: 'Puanlar',
|
||||
referralScore: 'Davet Puanı',
|
||||
maxScore: 'Maksimum puan: 500',
|
||||
referMoreTitle: 'Daha çok davet edin, daha çok kazanın!',
|
||||
referMoreDescription:
|
||||
'Getirdiğiniz her kişi için HEZ ve PEZ ödülleri alırsınız. Daha fazla davet = daha fazla ödül!',
|
||||
kycApproved: 'KYC Onaylandı',
|
||||
referrer: 'Davet Eden',
|
||||
none: 'Yok',
|
||||
invitedMe: 'Beni davet etti',
|
||||
pendingReferral: 'Bekleyen davet',
|
||||
completeKyc: "Davetini onaylamak için KYC'yi tamamlayın:",
|
||||
inviteFriends: 'Arkadaşlarınızı davet edin',
|
||||
yourLink: 'Bağlantınız',
|
||||
copySuccess: 'Kopyalandı!',
|
||||
copyLink: 'Kopyala',
|
||||
shareLink: 'Paylaş',
|
||||
scoreSystem: 'Puan sistemi',
|
||||
activeStatus: 'Aktivite Durumu',
|
||||
timeRemaining: 'Süre: {time} kaldı',
|
||||
active: 'Aktif',
|
||||
inactive: 'Pasif',
|
||||
activeDescription: 'Aktif kalmak ve daha fazla ödül kazanmak için her 24 saatte bir tıklayın!',
|
||||
youAreActive: 'Aktifsiniz!',
|
||||
iAmActive: 'Aktifim!',
|
||||
activatedAlert: 'Artık aktifsiniz! 24 saat sonra tekrar tıklayın.',
|
||||
shareText: 'Pezkuwichain - Kürdistan Dijital Devleti! Bağlantımdan bize katılın:',
|
||||
copyAlert: 'Kopyalandı',
|
||||
referralCount: '{count} davet (KYC onaylı)',
|
||||
noReferrals: 'Henüz davetiniz yok',
|
||||
shareYourLink: 'Bağlantınızı paylaşın!',
|
||||
trustScore: 'Güven Puanı',
|
||||
rank: 'Sıralama: {rating}',
|
||||
citizen: 'Vatandaş',
|
||||
staking: 'Staking',
|
||||
stakingNotStarted: 'Başlamadı',
|
||||
stakingCountedInTrust: 'Güven puanına dahil',
|
||||
people: '{count} kişi',
|
||||
tiki: 'Tiki',
|
||||
nftRole: 'NFT Rolü',
|
||||
education: 'Eğitim',
|
||||
reading: 'Okuma',
|
||||
stakingRewards: 'Staking Ödülleri',
|
||||
totalRewards: 'Toplam alınan ödüller',
|
||||
recentRewards: 'Son ödüller',
|
||||
noRewardsYet: 'Henüz kaydedilmiş ödül yok',
|
||||
scoreFormula: 'Puan Formülü',
|
||||
stakingZeroWarning: 'Staking 0 ise Güven puanı da 0 olur. Önce stake yapın!',
|
||||
refreshScores: 'Puanları Yenile',
|
||||
points: 'puan',
|
||||
},
|
||||
|
||||
wallet: {
|
||||
title: 'Cüzdan',
|
||||
authFailed: 'Kimlik Doğrulama Başarısız',
|
||||
authDescription: 'Lütfen bu uygulamayı Telegram içinden açtığınızdan emin olun',
|
||||
retry: 'Tekrar Dene',
|
||||
},
|
||||
|
||||
walletSetup: {
|
||||
officialWallet: 'Resmi Pezkuwichain cüzdanı',
|
||||
createNew: 'Yeni Cüzdan Oluştur',
|
||||
createNewDesc: 'Kurtarma kelimeleriyle yeni bir cüzdan oluşturun',
|
||||
importWallet: 'Cüzdan İçe Aktar',
|
||||
importWalletDesc: 'Mevcut kurtarma kelimelerinizi kullanın',
|
||||
securityNote:
|
||||
'Cüzdanınız cihazınızda güvenli bir şekilde saklanır. Anahtarlarınıza asla erişimimiz yoktur.',
|
||||
},
|
||||
|
||||
walletCreate: {
|
||||
setPassword: 'Şifre Belirle',
|
||||
passwordDescription: 'Bu şifre cüzdanınızın kilidini açmak için kullanılacaktır',
|
||||
passwordLabel: 'Şifre',
|
||||
passwordPlaceholder: 'En az 12 karakter',
|
||||
confirmPasswordLabel: 'Şifreyi Onayla',
|
||||
confirmPasswordPlaceholder: 'Şifrenizi tekrar girin',
|
||||
passwordRequirements: 'Şifre Gereksinimleri:',
|
||||
ruleMinLength: 'En az 12 karakter',
|
||||
ruleLowercase: 'En az 1 küçük harf (a-z)',
|
||||
ruleUppercase: 'En az 1 büyük harf (A-Z)',
|
||||
ruleNumber: 'En az 1 rakam (0-9)',
|
||||
ruleSpecialChar: 'En az 1 özel karakter (!@#$%...)',
|
||||
rulePasswordsMatch: 'Şifreler eşleşiyor',
|
||||
walletServiceNotReady: 'Cüzdan hizmeti hazır değil. Lütfen bekleyin.',
|
||||
passwordRequirementsNotMet: 'Lütfen tüm şifre gereksinimlerini karşılayın',
|
||||
walletCreationFailed: 'Cüzdan oluşturma başarısız. Lütfen tekrar deneyin',
|
||||
preparing: 'Hazırlanıyor...',
|
||||
creating: 'Oluşturuluyor...',
|
||||
meetPasswordRequirements: 'Şifre gereksinimlerini karşılayın',
|
||||
backupTitle: 'Kurtarma Kelimelerini Yedekle',
|
||||
backupDescription: 'Bu 12 kelime cüzdanınızdır. Güvenli bir yere yazın!',
|
||||
backupWarning:
|
||||
'Önemli: Bu kelimeler yalnızca bir kez gösterilir. Kaybederseniz cüzdanınıza erişemezsiniz.',
|
||||
copiedMnemonic: 'Kopyalandı!',
|
||||
copyMnemonic: 'Kopyala',
|
||||
conditionWrittenDown: 'Bu 12 kelimeyi güvenli bir yere yazdım',
|
||||
conditionNeverShare: 'Bu kelimeleri asla kimseyle paylaşmamam gerektiğini anlıyorum',
|
||||
conditionLossRisk: 'Bu kelimeleri kaybedersem cüzdanıma erişemeyeceğimi anlıyorum',
|
||||
acceptAllConditions: 'Tüm koşulları kabul et',
|
||||
verifyWords: 'Kelimeleri Doğrula',
|
||||
reset: 'Sıfırla',
|
||||
verifyDescription: 'Lütfen kelimeleri doğru sıraya dizin',
|
||||
dropWordsHere: 'Kelimeleri buraya yerleştirin...',
|
||||
wrongOrder: 'Yanlış kelime sırası. Lütfen tekrar deneyin',
|
||||
saving: 'Kaydediliyor...',
|
||||
verify: 'Doğrula',
|
||||
wordsCount: '{count}/12 kelime',
|
||||
walletCreated: 'Cüzdan Oluşturuldu!',
|
||||
walletReady: 'Cüzdanınız hazır',
|
||||
yourAddress: 'Adresiniz',
|
||||
getStarted: 'Başlayın',
|
||||
},
|
||||
|
||||
walletImport: {
|
||||
title: 'Cüzdan İçe Aktar',
|
||||
description: 'Mevcut cüzdanınızın kurtarma kelimelerini girin',
|
||||
seedPhraseLabel: 'Kurtarma Kelimeleri (12 veya 24 kelime)',
|
||||
seedPhrasePlaceholder: 'Kelimeleri boşlukla ayırarak girin...',
|
||||
wordsCount: '{count} / 12 kelime',
|
||||
newPassword: 'Yeni Şifre',
|
||||
seedPhraseInvalid: 'Kurtarma kelimeleri 12 veya 24 kelime olmalıdır',
|
||||
passwordInvalid: 'Şifre geçersiz',
|
||||
passwordsMismatch: 'Şifreler eşleşmiyor',
|
||||
importFailed: 'İçe aktarma başarısız',
|
||||
importing: 'İçe aktarılıyor...',
|
||||
importButton: 'İçe Aktar',
|
||||
},
|
||||
|
||||
walletConnect: {
|
||||
deleteTitle: 'Cüzdan Silinsin mi?',
|
||||
deleteDescription:
|
||||
'Bu işlem geri alınamaz. Kurtarma kelimeleriniz yoksa cüzdanınıza erişemezsiniz.',
|
||||
deleteButton: 'Sil',
|
||||
openWallet: 'Cüzdanı Aç',
|
||||
passwordLabel: 'Şifre',
|
||||
passwordPlaceholder: 'Şifrenizi girin',
|
||||
enterPassword: 'Şifrenizi girin',
|
||||
wrongPassword: 'Yanlış şifre',
|
||||
connecting: 'Açılıyor...',
|
||||
connect: 'Bağlan',
|
||||
deleteWalletLink: 'Cüzdanı sil',
|
||||
},
|
||||
|
||||
deposit: {
|
||||
title: 'USDT Yatır',
|
||||
subtitle: 'Asset Hub üzerinde wUSDT için',
|
||||
depositHistory: 'Yatırma Geçmişi',
|
||||
noDeposits: 'Henüz yatırma yok',
|
||||
goBack: 'Geri dön',
|
||||
selectNetwork: 'Ağ Seçin',
|
||||
recommended: 'Önerilen',
|
||||
warning: 'Uyarı!',
|
||||
example: 'Örnek: 10 USDT gönderin \u2192 7 wUSDT alın (3$ komisyon)',
|
||||
acceptTrc20: 'Kabul ediyorum, TRC20 ile gönder',
|
||||
important: 'Önemli!',
|
||||
minimum: 'Minimum: {amount} USDT',
|
||||
memoRequired: 'Memo/Açıklama alanına kodunuzu yazın',
|
||||
onlyUsdt: 'Yalnızca USDT gönderin, diğer tokenlar kaybolur',
|
||||
trc20Fee: 'Tutarınızdan 3$ komisyon düşülecektir',
|
||||
depositAddress: 'Yatırma Adresi',
|
||||
notAvailable: 'Mevcut değil',
|
||||
memoLabel: 'Memo / Açıklama (ZORUNLU)',
|
||||
memoWarning: 'Bu kodu memo alanına yazın, aksi takdirde yatırmanız tanınmaz!',
|
||||
uniqueAddress: 'Bu adres size özeldir. Memo gerekmez.',
|
||||
howToDeposit: 'Nasıl Yatırılır?',
|
||||
stepCopyAddress: 'Adresi kopyalayın',
|
||||
stepCopyMemo: 'Memo kodunu kopyalayın',
|
||||
stepOpenTon: 'Telegram Cüzdanı veya cüzdanınızı açın',
|
||||
stepOpenPolkadot: 'Polkadot cüzdanınızı açın',
|
||||
stepOpenTrc20: 'TronLink veya cüzdanınızı açın',
|
||||
stepSendUsdt: 'Yukarıdaki adrese USDT gönderin',
|
||||
stepReceive: 'wUSDT birkaç dakika içinde hesabınızda olacak',
|
||||
processingTime: 'İşlem süresi: ~1-5 dakika',
|
||||
copyFailed: 'Kopyalama başarısız',
|
||||
statusPending: 'Beklemede',
|
||||
statusConfirming: 'Onaylanıyor',
|
||||
statusCompleted: 'Tamamlandı',
|
||||
statusFailed: 'Başarısız',
|
||||
statusExpired: 'Süresi Doldu',
|
||||
viewTx: 'TX Görüntüle',
|
||||
trc20FeeWarning: "TRC20 ağ komisyonu yaklaşık 3$'dır. TON veya Polkadot ağını öneririz.",
|
||||
},
|
||||
|
||||
p2p: {
|
||||
title: 'P2P Borsa',
|
||||
subtitle: 'Eşler arası kripto ticareti',
|
||||
firstTime: "P2P'yi ilk kez mi kullanıyorsunuz?",
|
||||
steps: [
|
||||
'Web uygulamasını açmak için aşağıdaki düğmeye tıklayın',
|
||||
'Hesap oluşturun veya giriş yapın',
|
||||
'P2P kurulum sürecini tamamlayın',
|
||||
"Kurulumdan sonra P2P'ye doğrudan erişebilirsiniz",
|
||||
],
|
||||
note: 'Web uygulaması yeni bir pencerede açılacak. Kayıt işlemini orada tamamlayın.',
|
||||
button: 'P2P Platformunu Aç',
|
||||
},
|
||||
|
||||
update: {
|
||||
newVersion: 'Yeni sürüm mevcut!',
|
||||
description: 'Yeni özellikler ve güvenlik düzeltmeleri için güncelleyin.',
|
||||
later: 'Sonra',
|
||||
updateNow: 'Güncelle',
|
||||
},
|
||||
|
||||
social: {
|
||||
followUs: 'Bizi takip edin',
|
||||
stayConnected: 'Bağlantıda kalın ve en son haberleri alın!',
|
||||
instagram: 'Fotoğraflar ve Hikayeler',
|
||||
tiktok: 'Kısa videolar',
|
||||
snapchat: 'Snap gönderin!',
|
||||
telegram: 'Resmi kanal',
|
||||
twitter: 'Günlük haberler',
|
||||
youtube: 'Videolarımız',
|
||||
facebook: 'Resmi sayfa',
|
||||
discord: 'Topluluğumuz',
|
||||
},
|
||||
|
||||
errorBoundary: {
|
||||
title: 'Bir şeyler yanlış gitti',
|
||||
description: 'Üzgünüz, teknik bir hata oluştu. Lütfen tekrar deneyin.',
|
||||
retry: 'Tekrar dene',
|
||||
},
|
||||
|
||||
loadingScreen: {
|
||||
loading: 'Yükleniyor...',
|
||||
},
|
||||
};
|
||||
|
||||
export default tr;
|
||||
@@ -0,0 +1,323 @@
|
||||
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;
|
||||
copyAlert: string;
|
||||
referralCount: string;
|
||||
noReferrals: string;
|
||||
shareYourLink: string;
|
||||
trustScore: string;
|
||||
rank: string;
|
||||
citizen: string;
|
||||
staking: string;
|
||||
stakingNotStarted: 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;
|
||||
};
|
||||
|
||||
// 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 Modal
|
||||
p2p: {
|
||||
title: string;
|
||||
subtitle: string;
|
||||
firstTime: string;
|
||||
steps: string[];
|
||||
note: string;
|
||||
button: 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;
|
||||
};
|
||||
}
|
||||
|
||||
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: 'العربية',
|
||||
};
|
||||
Reference in New Issue
Block a user