refactor(i18n): streamline localization for zh-CN and remove zh-HK
This commit is contained in:
@@ -1,360 +0,0 @@
|
|||||||
{
|
|
||||||
"wallet": {
|
|
||||||
"wallet": "المحفظة",
|
|
||||||
"recharge": "إعادة الشحن",
|
|
||||||
"withdraw": "سحب",
|
|
||||||
"transfer": "تحويل",
|
|
||||||
"balance": "الرصيد"
|
|
||||||
},
|
|
||||||
"recharge": {
|
|
||||||
"channel": {
|
|
||||||
"chainRecharge": "إعادة الشحن عبر البلوكشين",
|
|
||||||
"chainRechargeDesc": "تحويل العملات المشفرة من محفظة البلوكشين أو البورصة",
|
|
||||||
"fiatCurrency": "إعادة الشحن بالعملة الورقية",
|
|
||||||
"fiatCurrencyDesc": "تحويل العملة الورقية عبر البنك أو المؤسسات المالية الأخرى"
|
|
||||||
},
|
|
||||||
"fiat": {
|
|
||||||
"title": "إعادة الشحن بالعملة الورقية",
|
|
||||||
"bankAccount": "حساب البطاقة البنكية لإعادة الشحن",
|
|
||||||
"chooseCurrency": "اختر العملة",
|
|
||||||
"amount": "المبلغ",
|
|
||||||
"enterAmount": "الرجاء إدخال المبلغ",
|
|
||||||
"validAmountError": "الرجاء إدخال مبلغ صحيح.",
|
|
||||||
"note": "يرجى التأكد من إدخال المبلغ الصحيح. بعد التقديم، سيتم إضافة الأموال إلى حسابك بعد المراجعة الخلفية.",
|
|
||||||
"submit": "إرسال",
|
|
||||||
"submitSuccess": "تم التقديم بنجاح!"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"withdraw": {
|
|
||||||
"title": "سحب",
|
|
||||||
"chooseCurrency": "اختر العملة",
|
|
||||||
"chooseMethod": "اختر طريقة السحب",
|
|
||||||
"amount": "المبلغ",
|
|
||||||
"enterAmountMax": "الرجاء إدخال المبلغ (الحد الأقصى: {amount})",
|
|
||||||
"validAmountError": "الرجاء إدخال مبلغ صحيح.",
|
|
||||||
"bankAccountId": "معرف الحساب البنكي",
|
|
||||||
"enterBankAccountId": "الرجاء إدخال معرف الحساب البنكي",
|
|
||||||
"validBankAccountError": "الرجاء إدخال معرف حساب بنكي صحيح.",
|
|
||||||
"chooseChain": "اختر البلوكشين",
|
|
||||||
"cryptoAddress": "عنوان العملة المشفرة",
|
|
||||||
"enterCryptoAddress": "الرجاء إدخال عنوان العملة المشفرة",
|
|
||||||
"validCryptoAddressError": "الرجاء إدخال عنوان عملة مشفرة صحيح.",
|
|
||||||
"successMessage": "تم تقديم طلب السحب بنجاح!",
|
|
||||||
"submit": "إرسال",
|
|
||||||
"assetCode": {
|
|
||||||
"USDT": "USDT",
|
|
||||||
"OPTS": "OPTS"
|
|
||||||
},
|
|
||||||
"method": {
|
|
||||||
"bank": "التحويل البنكي",
|
|
||||||
"crypto": "العملة المشفرة",
|
|
||||||
"cash": "نقدا"
|
|
||||||
},
|
|
||||||
"validation": {
|
|
||||||
"assetCodeRequired": "الرجاء اختيار العملة",
|
|
||||||
"amountRequired": "الرجاء إدخال المبلغ",
|
|
||||||
"amountInvalid": "الرجاء إدخال صيغة رقمية صحيحة",
|
|
||||||
"amountExceedsBalance": "لا يمكن أن يتجاوز المبلغ الرصيد المتاح",
|
|
||||||
"amountTooSmall": "يجب أن يكون المبلغ أكبر من 0",
|
|
||||||
"methodRequired": "الرجاء اختيار طريقة السحب",
|
|
||||||
"bankAccountRequired": "الرجاء اختيار الحساب البنكي",
|
|
||||||
"chainRequired": "الرجاء اختيار شبكة البلوكشين",
|
|
||||||
"addressRequired": "الرجاء إدخال عنوان السحب",
|
|
||||||
"addressTooShort": "صيغة العنوان غير صحيحة، الطول قصير جدًا"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bankCard": {
|
|
||||||
"management": "إدارة البطاقات البنكية",
|
|
||||||
"add": "إضافة بطاقة بنكية",
|
|
||||||
"empty": {
|
|
||||||
"title": "لا توجد بطاقة بنكية",
|
|
||||||
"description": "أضف بطاقة بنكية لإعادة الشحن والسحب السريع",
|
|
||||||
"addButton": "إضافة بطاقة بنكية"
|
|
||||||
},
|
|
||||||
"list": {
|
|
||||||
"addCard": "إضافة بطاقة بنكية",
|
|
||||||
"boundCards": "البطاقات البنكية المربوطة",
|
|
||||||
"defaultCard": "البطاقة البنكية الافتراضية",
|
|
||||||
"setDefault": "تعيين كافتراضي",
|
|
||||||
"edit": "تعديل",
|
|
||||||
"delete": "حذف",
|
|
||||||
"cancel": "إلغاء",
|
|
||||||
"debitCard": "بطاقة توفير"
|
|
||||||
},
|
|
||||||
"form": {
|
|
||||||
"tips": {
|
|
||||||
"title": "تذكير دافئ",
|
|
||||||
"description": "لضمان سلامة أموالك، يرجى التأكد من صحة معلومات البطاقة البنكية. ستُستخدم البطاقة البنكية المضافة لعمليات إعادة الشحن والسحب."
|
|
||||||
},
|
|
||||||
"bankName": "اسم البنك",
|
|
||||||
"bankNamePlaceholder": "الرجاء اختيار البنك الخاص بك",
|
|
||||||
"accountNumber": "رقم البطاقة البنكية",
|
|
||||||
"accountNumberPlaceholder": "الرجاء إدخال رقم البطاقة البنكية",
|
|
||||||
"accountNumberHelper": "يدعم أرقام البطاقات البنكية من 16-19 رقمًا",
|
|
||||||
"accountName": "اسم حامل البطاقة",
|
|
||||||
"accountNamePlaceholder": "الرجاء إدخال اسم حامل البطاقة",
|
|
||||||
"accountNameHelper": "الرجاء إدخال الاسم الحقيقي عند فتح الحساب البنكي",
|
|
||||||
"security": {
|
|
||||||
"title": "ضمان الأمان",
|
|
||||||
"encryption": "يتم نقل جميع معلومات البطاقة البنكية مشفرة بـ SSL",
|
|
||||||
"standard": "نلتزم بصرامة بمعايير الأمان على مستوى البنوك",
|
|
||||||
"privacy": "سيتم حماية معلوماتك الشخصية بشكل صحيح"
|
|
||||||
},
|
|
||||||
"submit": "تأكيد إضافة البطاقة البنكية",
|
|
||||||
"validation": {
|
|
||||||
"bankRequired": "الرجاء اختيار البنك",
|
|
||||||
"accountNumberRequired": "الرجاء إدخال رقم البطاقة البنكية",
|
|
||||||
"accountNameRequired": "الرجاء إدخال اسم حامل البطاقة"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"messages": {
|
|
||||||
"addSuccess": "تمت إضافة البطاقة البنكية بنجاح",
|
|
||||||
"setDefaultSuccess": "تم التعيين كبطاقة بنكية افتراضية",
|
|
||||||
"deleteSuccess": "تم حذف البطاقة البنكية بنجاح",
|
|
||||||
"deleteConfirm": "حذف البطاقة البنكية",
|
|
||||||
"deleteMessage": "هل أنت متأكد من حذف {bankName} ({accountName})؟ لا يمكن التراجع عن هذا الإجراء."
|
|
||||||
},
|
|
||||||
"tips": {
|
|
||||||
"encryption": "معلومات البطاقة البنكية محمية بالتشفير",
|
|
||||||
"support": "يدعم البنوك الرئيسية لإعادة الشحن والسحب السريع"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"trade": {
|
|
||||||
"title": "التداول",
|
|
||||||
"settings": {
|
|
||||||
"bankManagement": "إدارة البطاقات البنكية",
|
|
||||||
"mySubscribe": "اشتراكاتي"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"asset": {
|
|
||||||
"issue": {
|
|
||||||
"issuingAsset": "إصدار الأصول",
|
|
||||||
"myCompany": "شركتي",
|
|
||||||
"issuingApply": "طلب الإصدار",
|
|
||||||
"audit": "التدقيق والمراجعة",
|
|
||||||
"supervision": "الإشراف بالوكالة",
|
|
||||||
"apply": {
|
|
||||||
"title": "طلب الإصدار",
|
|
||||||
"base": "المعلومات الأساسية",
|
|
||||||
"issuePeriod": "فترة الإصدار",
|
|
||||||
"productName": "اسم المنتج",
|
|
||||||
"enterProductName": "الرجاء إدخال اسم المنتج",
|
|
||||||
"productCode": "رمز المنتج",
|
|
||||||
"enterProductCode": "الرجاء إدخال رمز المنتج",
|
|
||||||
"productType": "نوع المنتج",
|
|
||||||
"chooseProductType": "الرجاء اختيار نوع المنتج",
|
|
||||||
"productValue": "تقييم المنتج",
|
|
||||||
"enterProductValue": "الرجاء إدخال تقييم المنتج (بالدولار الأمريكي)",
|
|
||||||
"assetProof": "إثبات الأصول",
|
|
||||||
"enterAssetProof": "الرجاء إدخال إثبات الأصول",
|
|
||||||
"uploadAssetProof": "تحميل مستندات إثبات الأصول",
|
|
||||||
"totalSupplyLimit": "الحد الأقصى لإجمالي الإصدار",
|
|
||||||
"enterTotalSupplyLimit": "الرجاء إدخال الحد الأقصى لإجمالي الإصدار",
|
|
||||||
"editionName": "اسم فترة الإصدار",
|
|
||||||
"enterEditionName": "الرجاء إدخال اسم فترة الإصدار",
|
|
||||||
"launchDate": "وقت الإحماء",
|
|
||||||
"enterLaunchDate": "الرجاء إدخال وقت الإحماء",
|
|
||||||
"perUserLimit": "الحد الأقصى للاشتراك الفردي",
|
|
||||||
"enterPerUserLimit": "الرجاء إدخال الحد الأقصى للاشتراك الفردي",
|
|
||||||
"totalSupply": "إجمالي الإصدار",
|
|
||||||
"enterTotalSupply": "الرجاء إدخال إجمالي الإصدار",
|
|
||||||
"subscriptionStartDate": "تاريخ بدء الاشتراك",
|
|
||||||
"subscriptionEndDate": "تاريخ انتهاء الاشتراك",
|
|
||||||
"unitPrice": "سعر الوحدة",
|
|
||||||
"enterUnitPrice": "الرجاء إدخال سعر الوحدة",
|
|
||||||
"dividendRate": "معدل الأرباح",
|
|
||||||
"enterDividendRate": "معدل الأرباح (مثل 0.01 يمثل 1٪)",
|
|
||||||
"description": "وصف المنتج",
|
|
||||||
"enterDescription": "الرجاء إدخال وصف المنتج",
|
|
||||||
"issuePeriodIndex": "فترة الإصدار {index}",
|
|
||||||
"realEstate": "العقارات",
|
|
||||||
"snickers": "الحلوى",
|
|
||||||
"next": "التالي",
|
|
||||||
"back": "العودة",
|
|
||||||
"submit": "إرسال",
|
|
||||||
"addStep": "إضافة فترة إصدار",
|
|
||||||
"removeItem": "إزالة العنصر",
|
|
||||||
"validation": {
|
|
||||||
"nameRequired": "اسم المنتج مطلوب",
|
|
||||||
"codeRequired": "رمز المنتج مطلوب",
|
|
||||||
"categoryRequired": "نوع المنتج مطلوب",
|
|
||||||
"editionNameRequired": "اسم فترة الإصدار مطلوب",
|
|
||||||
"launchDateRequired": "وقت الإحماء مطلوب",
|
|
||||||
"launchDateNotPast": "لا يمكن أن يكون وقت الإحماء قبل الوقت الحالي",
|
|
||||||
"launchBeforeSubscription": "يجب أن يكون وقت الإحماء قبل تاريخ بدء الاشتراك",
|
|
||||||
"subscriptionStartDateRequired": "تاريخ بدء الاشتراك مطلوب",
|
|
||||||
"subscriptionStartDateNotPast": "لا يمكن أن يكون تاريخ بدء الاشتراك قبل التاريخ الحالي",
|
|
||||||
"subscriptionAfterLaunch": "يجب أن يكون تاريخ بدء الاشتراك بعد وقت الإحماء",
|
|
||||||
"subscriptionEndDateRequired": "تاريخ انتهاء الاشتراك مطلوب",
|
|
||||||
"subscriptionEndAfterStart": "يجب أن يكون تاريخ انتهاء الاشتراك بعد تاريخ بدء الاشتراك",
|
|
||||||
"perUserLimitRequired": "الحد الأقصى للاشتراك الفردي مطلوب",
|
|
||||||
"totalSupplyRequired": "إجمالي الإصدار مطلوب",
|
|
||||||
"unitPriceRequired": "سعر الوحدة مطلوب",
|
|
||||||
"dividendRateRequired": "معدل الأرباح مطلوب"
|
|
||||||
},
|
|
||||||
"done": {
|
|
||||||
"title": "تم تقديم الطلب بنجاح",
|
|
||||||
"description": "تم تقديم طلب الإصدار الخاص بك بنجاح، وسنراجع طلبك خلال أيام العمل. يرجى انتظار نتيجة المراجعة بصبر.",
|
|
||||||
"viewProducts": "عرض منتجاتي"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"purchase": {
|
|
||||||
"purchaseAsset": "شراء الأصول",
|
|
||||||
"fiatPurchase": "الشراء بالعملة الورقية",
|
|
||||||
"cryptoPurchase": "الشراء بالعملة الرقمية",
|
|
||||||
"realEstate": "العقارات",
|
|
||||||
"assetExchange": "تبادل الأصول"
|
|
||||||
},
|
|
||||||
"balance": {
|
|
||||||
"assetBalance": "رصيد الأصول",
|
|
||||||
"fiat": "العملة الورقية",
|
|
||||||
"onChain": "على البلوكشين",
|
|
||||||
"wallet": "المحفظة",
|
|
||||||
"recharge": "إعادة الشحن"
|
|
||||||
},
|
|
||||||
"revenue": {
|
|
||||||
"myRevenue": "إيراداتي",
|
|
||||||
"totalRevenue": "إجمالي الإيرادات",
|
|
||||||
"monthlyRevenue": "الإيرادات الشهرية",
|
|
||||||
"pendingRevenue": "الإيرادات المعلقة",
|
|
||||||
"revenueDetails": "تفاصيل الإيرادات"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"myIssues": {
|
|
||||||
"title": "طلبات الإصدار الخاصة بي",
|
|
||||||
"search": "بحث",
|
|
||||||
"list": {
|
|
||||||
"nameCode": "الاسم/الرمز",
|
|
||||||
"createdAt": "وقت الإنشاء",
|
|
||||||
"status": "الحالة"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"draft": "مسودة",
|
|
||||||
"under_review": "قيد المراجعة",
|
|
||||||
"approved": "تمت الموافقة",
|
|
||||||
"rejected": "مرفوض"
|
|
||||||
},
|
|
||||||
"loadMore": "تحميل المزيد"
|
|
||||||
},
|
|
||||||
"market": {
|
|
||||||
"title": "السوق",
|
|
||||||
"search": {
|
|
||||||
"placeholder": "بحث"
|
|
||||||
},
|
|
||||||
"category": {
|
|
||||||
"all": "الكل"
|
|
||||||
},
|
|
||||||
"rwaList": {
|
|
||||||
"nameCode": "الاسم/الرمز",
|
|
||||||
"stage": "المرحلة",
|
|
||||||
"issueDate": "تاريخ الإصدار",
|
|
||||||
"subscriptionPrice": "سعر الاشتراك"
|
|
||||||
},
|
|
||||||
"tradeRwa": {
|
|
||||||
"tabs": {
|
|
||||||
"overview": "نظرة عامة",
|
|
||||||
"moment": "اللحظة"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"productCode": "رقم المنتج",
|
|
||||||
"valuation": "التقييم",
|
|
||||||
"unitPrice": "سعر الوحدة",
|
|
||||||
"totalSupply": "إجمالي الإصدار",
|
|
||||||
"perUserLimit": "الحد لكل شخص",
|
|
||||||
"launchDate": "وقت الإحماء",
|
|
||||||
"subscriptionStartDate": "تاريخ بدء الاشتراك",
|
|
||||||
"subscriptionEndDate": "تاريخ انتهاء الاشتراك"
|
|
||||||
},
|
|
||||||
"units": {
|
|
||||||
"shares": "أسهم"
|
|
||||||
},
|
|
||||||
"about": "حول",
|
|
||||||
"noDescription": "لا يوجد وصف.",
|
|
||||||
"subscribe": "اشترك",
|
|
||||||
"subscribeSuccess": "نجح الاشتراك"
|
|
||||||
},
|
|
||||||
"subscribeRwa": {
|
|
||||||
"title": "اشترك في RWA",
|
|
||||||
"maxSubscribePlaceholder": "الحد الأقصى للكمية القابلة للاشتراك: {max}",
|
|
||||||
"unitPrice": "سعر الوحدة",
|
|
||||||
"availableBalance": "الرصيد المتاح",
|
|
||||||
"confirmSubscribe": "تأكيد الاشتراك",
|
|
||||||
"enterQuantityError": "الرجاء إدخال كمية الاشتراك"
|
|
||||||
},
|
|
||||||
"loading": {
|
|
||||||
"loadingMore": "تحميل المزيد..."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tabs": {
|
|
||||||
"riwa": "Riwa",
|
|
||||||
"market": "السوق",
|
|
||||||
"trade": "التداول",
|
|
||||||
"chat": "الدردشة",
|
|
||||||
"user": "حسابي"
|
|
||||||
},
|
|
||||||
"common": {
|
|
||||||
"failedSendCode": "فشل إرسال رمز التحقق",
|
|
||||||
"uploadFile": "تحميل ملف",
|
|
||||||
"files": "ملفات"
|
|
||||||
},
|
|
||||||
"auth": {
|
|
||||||
"login": {
|
|
||||||
"title": "تسجيل الدخول",
|
|
||||||
"loginButton": "تسجيل الدخول",
|
|
||||||
"signupButton": "التسجيل",
|
|
||||||
"username": "البريد الإلكتروني",
|
|
||||||
"phone": "الهاتف",
|
|
||||||
"selectCountryCode": "اختر الدولة/المنطقة",
|
|
||||||
"enterEmail": "أدخل البريد الإلكتروني",
|
|
||||||
"enterCode": "أدخل رمز التحقق",
|
|
||||||
"enterOtp": "أدخل رمز التحقق",
|
|
||||||
"getCode": "احصل على الرمز",
|
|
||||||
"sending": "جاري الإرسال...",
|
|
||||||
"sendCodeSuccess": "تم إرسال رمز التحقق",
|
|
||||||
"validation": {
|
|
||||||
"phoneNumberRequired": "الرجاء إدخال رقم الهاتف",
|
|
||||||
"phoneNumberInvalid": "الرجاء إدخال رقم هاتف صحيح",
|
|
||||||
"codeRequired": "الرجاء إدخال رمز التحقق",
|
|
||||||
"codeInvalid": "الرجاء إدخال رمز تحقق من 6 أرقام",
|
|
||||||
"emailRequired": "الرجاء إدخال البريد الإلكتروني",
|
|
||||||
"emailInvalid": "الرجاء إدخال عنوان بريد إلكتروني صحيح",
|
|
||||||
"otpRequired": "الرجاء إدخال رمز التحقق",
|
|
||||||
"otpInvalid": "الرجاء إدخال رمز تحقق من 6 أرقام"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"title": "الإعدادات",
|
|
||||||
"language": "اللغة",
|
|
||||||
"aboutUs": "معلومات عنا",
|
|
||||||
"clearCache": "مسح ذاكرة التخزين المؤقت",
|
|
||||||
"checkUpdate": "التحقق من التحديثات",
|
|
||||||
"cacheCleared": "تم مسح ذاكرة التخزين المؤقت",
|
|
||||||
"updateAvailable": "تم العثور على إصدار جديد",
|
|
||||||
"currentVersion": "الإصدار الحالي",
|
|
||||||
"latestVersion": "أحدث إصدار",
|
|
||||||
"newVersion": "إصدار جديد",
|
|
||||||
"cancel": "إلغاء",
|
|
||||||
"updateNow": "تحديث الآن",
|
|
||||||
"alreadyLatest": "أنت تستخدم أحدث إصدار",
|
|
||||||
"checkUpdateFailed": "فشل التحقق من التحديثات",
|
|
||||||
"languageTitle": "اللغة / Language",
|
|
||||||
"theme": "المظهر",
|
|
||||||
"themeTitle": "مظهر الواجهة",
|
|
||||||
"themeLight": "فاتح",
|
|
||||||
"themeDark": "داكن",
|
|
||||||
"themeAuto": "تلقائي (حسب النظام)"
|
|
||||||
},
|
|
||||||
"home": {
|
|
||||||
"title": "الصفحة الرئيسية",
|
|
||||||
"rwa": {
|
|
||||||
"title": "منتجات RWA",
|
|
||||||
"buy": "شراء",
|
|
||||||
"stage": "المرحلة: "
|
|
||||||
},
|
|
||||||
"news": {
|
|
||||||
"title": "الأخبار والتحديثات"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,604 +0,0 @@
|
|||||||
{
|
|
||||||
"wallet": {
|
|
||||||
"wallet": "Wallet",
|
|
||||||
"recharge": "Recharge",
|
|
||||||
"withdraw": "Withdraw",
|
|
||||||
"transfer": "Transfer",
|
|
||||||
"balance": "Balance"
|
|
||||||
},
|
|
||||||
"app": {
|
|
||||||
"update": {
|
|
||||||
"title": "New Version Available",
|
|
||||||
"message": "A new version is available. Update now?",
|
|
||||||
"now": "Update Now",
|
|
||||||
"later": "Later",
|
|
||||||
"forceUpdate": "A new version is required to continue using the app"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"scanner": {
|
|
||||||
"title": "Scan QR Code",
|
|
||||||
"hint": "Align QR code within frame to scan",
|
|
||||||
"fromGallery": "Choose from Gallery",
|
|
||||||
"notSupported": "QR code scanning not supported on this platform",
|
|
||||||
"permissionDenied": "Camera permission denied",
|
|
||||||
"openError": "Failed to open scanner",
|
|
||||||
"noQRCodeFound": "No QR code detected",
|
|
||||||
"galleryError": "Failed to read from gallery",
|
|
||||||
"galleryNotSupported": "Gallery selection not supported currently"
|
|
||||||
},
|
|
||||||
"recharge": {
|
|
||||||
"channel": {
|
|
||||||
"chainRecharge": "Chain recharge",
|
|
||||||
"chainRechargeDesc": "Transfer crypto from on-chain wallet or exchange.",
|
|
||||||
"fiatCurrency": "Fiat currency",
|
|
||||||
"fiatCurrencyDesc": "Transfer fiat currency through bank or other financial institutions."
|
|
||||||
},
|
|
||||||
"fiat": {
|
|
||||||
"title": "Fiat Recharge",
|
|
||||||
"bankAccount": "Recharge bank card account",
|
|
||||||
"chooseCurrency": "Choose Currency",
|
|
||||||
"amount": "Amount",
|
|
||||||
"enterAmount": "Enter the amount",
|
|
||||||
"validAmountError": "Please enter a valid amount.",
|
|
||||||
"note": "Please make sure to enter the correct amount. After submission, the funds will be credited to your account after review in the background.",
|
|
||||||
"submit": "Submit",
|
|
||||||
"submitSuccess": "Submission successful!"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"pending": "Pending",
|
|
||||||
"confirming": "Confirming",
|
|
||||||
"approved": "Approved",
|
|
||||||
"completed": "Completed",
|
|
||||||
"rejected": "Rejected",
|
|
||||||
"cancelled": "Cancelled"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"withdraw": {
|
|
||||||
"title": "Withdraw",
|
|
||||||
"chooseCurrency": "Choose Currency",
|
|
||||||
"chooseMethod": "Choose Withdraw Method",
|
|
||||||
"amount": "Amount",
|
|
||||||
"enterAmountMax": "Enter the amount (Max: {amount})",
|
|
||||||
"validAmountError": "Please enter a valid amount.",
|
|
||||||
"bankAccountId": "Bank Account ID",
|
|
||||||
"enterBankAccountId": "Enter the bank account ID",
|
|
||||||
"validBankAccountError": "Please enter a valid bank account ID.",
|
|
||||||
"chooseChain": "Choose Chain",
|
|
||||||
"cryptoAddress": "Crypto Address",
|
|
||||||
"enterCryptoAddress": "Enter the crypto address",
|
|
||||||
"validCryptoAddressError": "Please enter a valid crypto address.",
|
|
||||||
"successMessage": "Withdrawal request submitted successfully!",
|
|
||||||
"submit": "Submit",
|
|
||||||
"assetCode": {
|
|
||||||
"USDT": "USDT",
|
|
||||||
"OPTS": "OPTS"
|
|
||||||
},
|
|
||||||
"method": {
|
|
||||||
"bank": "Bank Transfer",
|
|
||||||
"crypto": "Cryptocurrency",
|
|
||||||
"cash": "Cash"
|
|
||||||
},
|
|
||||||
"validation": {
|
|
||||||
"assetCodeRequired": "Please select a currency",
|
|
||||||
"amountRequired": "Please enter an amount",
|
|
||||||
"amountInvalid": "Please enter a valid number format",
|
|
||||||
"amountExceedsBalance": "Amount cannot exceed available balance",
|
|
||||||
"amountTooSmall": "Amount must be greater than 0",
|
|
||||||
"methodRequired": "Please select a withdrawal method",
|
|
||||||
"bankAccountRequired": "Please select a bank account",
|
|
||||||
"chainRequired": "Please select a blockchain network",
|
|
||||||
"addressRequired": "Please enter a withdrawal address",
|
|
||||||
"addressTooShort": "Address format is incorrect, too short"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bankCard": {
|
|
||||||
"management": "Bank Card Management",
|
|
||||||
"add": "Add Bank Card",
|
|
||||||
"empty": {
|
|
||||||
"title": "No Bank Cards",
|
|
||||||
"description": "Add a bank card for quick deposits and withdrawals",
|
|
||||||
"addButton": "Add Bank Card"
|
|
||||||
},
|
|
||||||
"list": {
|
|
||||||
"addCard": "Add Bank Card",
|
|
||||||
"boundCards": "Bound Bank Cards",
|
|
||||||
"defaultCard": "Default Card",
|
|
||||||
"setDefault": "Set as Default",
|
|
||||||
"edit": "Edit",
|
|
||||||
"delete": "Delete",
|
|
||||||
"cancel": "Cancel",
|
|
||||||
"debitCard": "Debit Card"
|
|
||||||
},
|
|
||||||
"form": {
|
|
||||||
"tips": {
|
|
||||||
"title": "Tips",
|
|
||||||
"description": "To ensure the security of your funds, please make sure the bank card information is authentic and valid. The added bank card will be used for deposit and withdrawal operations."
|
|
||||||
},
|
|
||||||
"bankName": "Bank Name",
|
|
||||||
"bankNamePlaceholder": "Please select your bank",
|
|
||||||
"accountNumber": "Bank Card Number",
|
|
||||||
"accountNumberPlaceholder": "Please enter your bank card number",
|
|
||||||
"accountNumberHelper": "Supports 16-19 digit bank card numbers",
|
|
||||||
"accountName": "Cardholder Name",
|
|
||||||
"accountNamePlaceholder": "Please enter cardholder name",
|
|
||||||
"accountNameHelper": "Please enter the real name when opening the bank card",
|
|
||||||
"security": {
|
|
||||||
"title": "Security Guarantee",
|
|
||||||
"encryption": "All bank card information is encrypted via SSL transmission",
|
|
||||||
"standard": "We strictly follow bank-level security standards",
|
|
||||||
"privacy": "Your personal information will be properly protected"
|
|
||||||
},
|
|
||||||
"submit": "Confirm Add Bank Card",
|
|
||||||
"validation": {
|
|
||||||
"bankRequired": "Please select a bank",
|
|
||||||
"accountNumberRequired": "Please enter bank card number",
|
|
||||||
"accountNameRequired": "Please enter cardholder name"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"messages": {
|
|
||||||
"addSuccess": "Bank card added successfully",
|
|
||||||
"setDefaultSuccess": "Set as default bank card successfully",
|
|
||||||
"deleteSuccess": "Bank card deleted successfully",
|
|
||||||
"deleteConfirm": "Delete Bank Card",
|
|
||||||
"deleteMessage": "Are you sure you want to delete {bankName} ({accountName})? This operation cannot be undone."
|
|
||||||
},
|
|
||||||
"tips": {
|
|
||||||
"encryption": "Bank card information is encrypted and protected",
|
|
||||||
"support": "Supports mainstream banks for fast deposits and withdrawals"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"trade": {
|
|
||||||
"title": "Trade",
|
|
||||||
"settings": {
|
|
||||||
"bankManagement": "Bank Card",
|
|
||||||
"mySubscribe": "Subscribe",
|
|
||||||
"myIssues": "My Issues"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"asset": {
|
|
||||||
"issue": {
|
|
||||||
"issuingAsset": "Issuing Asset",
|
|
||||||
"myCompany": "My Company",
|
|
||||||
"issuingApply": "Issuing Apply",
|
|
||||||
"audit": "Audit",
|
|
||||||
"supervision": "Supervision",
|
|
||||||
"apply": {
|
|
||||||
"title": "Issuing Apply",
|
|
||||||
"base": "Base",
|
|
||||||
"issuePeriod": "Issue Period",
|
|
||||||
"productName": "Product Name",
|
|
||||||
"enterProductName": "Please enter product name",
|
|
||||||
"productCode": "Product Code",
|
|
||||||
"enterProductCode": "Please enter product code",
|
|
||||||
"productType": "Product Type",
|
|
||||||
"chooseProductType": "Please choose product type",
|
|
||||||
"productValue": "Product Valuation",
|
|
||||||
"enterProductValue": "Please enter product valuation (USD)",
|
|
||||||
"assetProof": "Asset Proof",
|
|
||||||
"enterAssetProof": "Please enter asset proof",
|
|
||||||
"uploadAssetProof": "Upload Asset Proof Documents",
|
|
||||||
"totalSupplyLimit": "Total Supply Limit",
|
|
||||||
"enterTotalSupplyLimit": "Please enter total supply limit",
|
|
||||||
"editionName": "Edition Name",
|
|
||||||
"enterEditionName": "Please enter edition name",
|
|
||||||
"launchDate": "Warm-up Time",
|
|
||||||
"enterLaunchDate": "Please enter warm-up time",
|
|
||||||
"perUserLimit": "Per User Limit",
|
|
||||||
"enterPerUserLimit": "Please enter per user limit",
|
|
||||||
"totalSupply": "Total Supply",
|
|
||||||
"enterTotalSupply": "Please enter total supply",
|
|
||||||
"subscriptionStartDate": "Subscription Start Date",
|
|
||||||
"subscriptionEndDate": "Subscription End Date",
|
|
||||||
"unitPrice": "Unit Price",
|
|
||||||
"enterUnitPrice": "Please enter unit price",
|
|
||||||
"dividendRate": "Dividend Rate",
|
|
||||||
"enterDividendRate": "Dividend rate (e.g., 0.01 for 1%)",
|
|
||||||
"description": "Product Description",
|
|
||||||
"enterDescription": "Please enter product description",
|
|
||||||
"issuePeriodIndex": "Issue Period {index}",
|
|
||||||
"realEstate": "Real Estate",
|
|
||||||
"snickers": "Snickers",
|
|
||||||
"next": "Next",
|
|
||||||
"back": "Back",
|
|
||||||
"submit": "Submit",
|
|
||||||
"addStep": "Add Step",
|
|
||||||
"removeItem": "Remove Item",
|
|
||||||
"validation": {
|
|
||||||
"nameRequired": "Name is required",
|
|
||||||
"codeRequired": "Code is required",
|
|
||||||
"categoryRequired": "Type is required",
|
|
||||||
"editionNameRequired": "Edition name is required",
|
|
||||||
"launchDateRequired": "Warm-up time is required",
|
|
||||||
"launchDateNotPast": "Warm-up time cannot be earlier than current date",
|
|
||||||
"launchBeforeSubscription": "Warm-up time must be before subscription start date",
|
|
||||||
"subscriptionStartDateRequired": "Subscription start date is required",
|
|
||||||
"subscriptionStartDateNotPast": "Subscription start date cannot be earlier than current date",
|
|
||||||
"subscriptionAfterLaunch": "Subscription start date must be after warm-up time",
|
|
||||||
"subscriptionEndDateRequired": "Subscription end date is required",
|
|
||||||
"subscriptionEndAfterStart": "Subscription end date must be after subscription start date",
|
|
||||||
"perUserLimitRequired": "Per user limit is required",
|
|
||||||
"totalSupplyRequired": "Total supply is required",
|
|
||||||
"unitPriceRequired": "Unit price is required",
|
|
||||||
"dividendRateRequired": "Dividend rate is required"
|
|
||||||
},
|
|
||||||
"done": {
|
|
||||||
"title": "Application Submitted Successfully",
|
|
||||||
"description": "Your issuance application has been submitted successfully. We will review your application within business days. Please wait patiently for the review results.",
|
|
||||||
"viewProducts": "View My Products"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"purchase": {
|
|
||||||
"purchaseAsset": "Purchase Assets",
|
|
||||||
"fiatPurchase": "Fiat Purchase",
|
|
||||||
"cryptoPurchase": "Crypto Purchase",
|
|
||||||
"realEstate": "Real Estate",
|
|
||||||
"assetExchange": "Asset Exchange"
|
|
||||||
},
|
|
||||||
"balance": {
|
|
||||||
"assetBalance": "Asset Balance",
|
|
||||||
"fiat": "Fiat",
|
|
||||||
"onChain": "On-Chain",
|
|
||||||
"wallet": "Wallet",
|
|
||||||
"recharge": "Recharge"
|
|
||||||
},
|
|
||||||
"revenue": {
|
|
||||||
"myRevenue": "My Revenue",
|
|
||||||
"totalRevenue": "Total Revenue",
|
|
||||||
"monthlyRevenue": "Monthly Revenue",
|
|
||||||
"pendingRevenue": "Pending Revenue",
|
|
||||||
"revenueDetails": "Revenue Details",
|
|
||||||
"types": {
|
|
||||||
"all": "All",
|
|
||||||
"dividend": "Dividend",
|
|
||||||
"staking": "Staking",
|
|
||||||
"new_user_reward": "New User Reward",
|
|
||||||
"referral_reward": "Referral Reward",
|
|
||||||
"trading_fee_rebate": "Trading Fee Rebate",
|
|
||||||
"deposit_rebate": "Deposit Rebate",
|
|
||||||
"deposit_reward": "Deposit Reward",
|
|
||||||
"other": "Other"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"income": {
|
|
||||||
"title": "Total Revenue",
|
|
||||||
"overview": {
|
|
||||||
"totalRevenue": "Total Revenue",
|
|
||||||
"yesterdayRevenue": "Yesterday's Revenue",
|
|
||||||
"monthRevenue": "This Month",
|
|
||||||
"pendingRevenue": "Pending Revenue"
|
|
||||||
},
|
|
||||||
"trend": {
|
|
||||||
"title": "Revenue Trend",
|
|
||||||
"last7Days": "Last 7 Days",
|
|
||||||
"last30Days": "Last 30 Days",
|
|
||||||
"last90Days": "Last 90 Days"
|
|
||||||
},
|
|
||||||
"sources": {
|
|
||||||
"title": "Revenue Sources",
|
|
||||||
"dividend": "Dividend",
|
|
||||||
"appreciation": "Appreciation",
|
|
||||||
"trade": "Trading"
|
|
||||||
},
|
|
||||||
"records": {
|
|
||||||
"title": "Revenue Records",
|
|
||||||
"all": "All",
|
|
||||||
"recent": "Recent Records",
|
|
||||||
"viewAll": "View All",
|
|
||||||
"assetName": "Asset Name",
|
|
||||||
"type": "Type",
|
|
||||||
"amount": "Amount",
|
|
||||||
"date": "Date",
|
|
||||||
"status": "Status",
|
|
||||||
"noData": "No revenue records"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"completed": "Completed",
|
|
||||||
"pending": "Pending",
|
|
||||||
"processing": "Processing"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"myIssues": {
|
|
||||||
"title": "My Issuance Applications",
|
|
||||||
"search": "Search",
|
|
||||||
"list": {
|
|
||||||
"nameCode": "Name/Code",
|
|
||||||
"createdAt": "Created Time",
|
|
||||||
"status": "Status"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"draft": "Draft",
|
|
||||||
"under_review": "Under Review",
|
|
||||||
"approved": "Approved",
|
|
||||||
"rejected": "Rejected"
|
|
||||||
},
|
|
||||||
"loadMore": "Load More"
|
|
||||||
},
|
|
||||||
"holdings": {
|
|
||||||
"title": "My Holdings",
|
|
||||||
"empty": "No holdings yet",
|
|
||||||
"nameCode": "Name/Code",
|
|
||||||
"quantity": "Quantity",
|
|
||||||
"totalValue": "Total Value",
|
|
||||||
"purchaseDate": "Purchase Date",
|
|
||||||
"status": {
|
|
||||||
"active": "Active",
|
|
||||||
"tokenized": "Tokenized",
|
|
||||||
"locked": "Locked"
|
|
||||||
},
|
|
||||||
"units": {
|
|
||||||
"shares": "shares"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"market": {
|
|
||||||
"title": "Market",
|
|
||||||
"search": {
|
|
||||||
"placeholder": "Search"
|
|
||||||
},
|
|
||||||
"category": {
|
|
||||||
"all": "All"
|
|
||||||
},
|
|
||||||
"rwaList": {
|
|
||||||
"nameCode": "Name/Code",
|
|
||||||
"stage": "Stage",
|
|
||||||
"issueDate": "Issue Date",
|
|
||||||
"subscriptionPrice": "Subscription Price"
|
|
||||||
},
|
|
||||||
"tradeRwa": {
|
|
||||||
"tabs": {
|
|
||||||
"overview": "Overview",
|
|
||||||
"moment": "Moment"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"productCode": "Product Code",
|
|
||||||
"valuation": "Valuation",
|
|
||||||
"unitPrice": "Unit Price",
|
|
||||||
"totalSupply": "Total Supply",
|
|
||||||
"perUserLimit": "Per User Limit",
|
|
||||||
"launchDate": "Warm-up Time",
|
|
||||||
"subscriptionStartDate": "Subscription Start Date",
|
|
||||||
"subscriptionEndDate": "Subscription End Date"
|
|
||||||
},
|
|
||||||
"units": {
|
|
||||||
"shares": "shares"
|
|
||||||
},
|
|
||||||
"about": "About",
|
|
||||||
"noDescription": "No description available.",
|
|
||||||
"subscribe": "Subscribe",
|
|
||||||
"subscribeSuccess": "Subscription successful"
|
|
||||||
},
|
|
||||||
"subscribeRwa": {
|
|
||||||
"title": "Subscribe RWA",
|
|
||||||
"maxSubscribePlaceholder": "Max quantity: {max}",
|
|
||||||
"unitPrice": "Unit Price",
|
|
||||||
"availableBalance": "Available Balance",
|
|
||||||
"confirmSubscribe": "Confirm Subscribe",
|
|
||||||
"enterQuantityError": "Please enter quantity"
|
|
||||||
},
|
|
||||||
"loading": {
|
|
||||||
"loadingMore": "Loading more..."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tabs": {
|
|
||||||
"riwa": "Riwa",
|
|
||||||
"market": "Market",
|
|
||||||
"trade": "Trade",
|
|
||||||
"chat": "Chat",
|
|
||||||
"notify": "Notify",
|
|
||||||
"user": "Profile"
|
|
||||||
},
|
|
||||||
"common": {
|
|
||||||
"failedSendCode": "Failed to send verification code",
|
|
||||||
"uploadFile": "Upload File",
|
|
||||||
"files": "files",
|
|
||||||
"today": "Today",
|
|
||||||
"yesterday": "Yesterday",
|
|
||||||
"items": "items"
|
|
||||||
},
|
|
||||||
"fileUpload": {
|
|
||||||
"uploadFile": "Upload File",
|
|
||||||
"files": "files",
|
|
||||||
"maxFilesError": "Maximum {max} files allowed",
|
|
||||||
"fileSizeError": "File {name} exceeds {max}MB limit",
|
|
||||||
"uploadError": "File {name} upload failed"
|
|
||||||
},
|
|
||||||
"news": {
|
|
||||||
"detail": "News Detail",
|
|
||||||
"summary": "Summary",
|
|
||||||
"views": "views",
|
|
||||||
"attachments": "Attachments",
|
|
||||||
"loadError": "Failed to load, please try again later"
|
|
||||||
},
|
|
||||||
"auth": {
|
|
||||||
"login": {
|
|
||||||
"title": "Log in",
|
|
||||||
"loginButton": "Log in",
|
|
||||||
"signupButton": "Sign up",
|
|
||||||
"username": "Email",
|
|
||||||
"phone": "Phone",
|
|
||||||
"selectCountryCode": "Select Country/Region",
|
|
||||||
"enterEmail": "Enter email",
|
|
||||||
"enterCode": "Enter verification code",
|
|
||||||
"enterOtp": "Enter verification code",
|
|
||||||
"getCode": "Get Code",
|
|
||||||
"sending": "Sending...",
|
|
||||||
"sendCodeSuccess": "Verification code sent",
|
|
||||||
"validation": {
|
|
||||||
"phoneNumberRequired": "Please enter phone number",
|
|
||||||
"phoneNumberInvalid": "Please enter a valid phone number",
|
|
||||||
"codeRequired": "Please enter verification code",
|
|
||||||
"codeInvalid": "Please enter a 6-digit verification code",
|
|
||||||
"emailRequired": "Please enter email",
|
|
||||||
"emailInvalid": "Please enter a valid email address",
|
|
||||||
"otpRequired": "Please enter verification code",
|
|
||||||
"otpInvalid": "Please enter a 6-digit verification code"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"title": "Settings",
|
|
||||||
"language": "Language",
|
|
||||||
"aboutUs": "About Us",
|
|
||||||
"clearCache": "Clear Cache",
|
|
||||||
"checkUpdate": "Check for Updates",
|
|
||||||
"cacheCleared": "Cache cleared",
|
|
||||||
"updateAvailable": "New version available",
|
|
||||||
"currentVersion": "Current version",
|
|
||||||
"latestVersion": "Latest version",
|
|
||||||
"newVersion": "New version",
|
|
||||||
"cancel": "Cancel",
|
|
||||||
"updateNow": "Update Now",
|
|
||||||
"alreadyLatest": "Already up to date",
|
|
||||||
"checkUpdateFailed": "Failed to check for updates",
|
|
||||||
"languageTitle": "Language / 语言",
|
|
||||||
"theme": "Theme",
|
|
||||||
"themeTitle": "Appearance",
|
|
||||||
"themeLight": "Light",
|
|
||||||
"themeDark": "Dark",
|
|
||||||
"themeAuto": "Auto"
|
|
||||||
},
|
|
||||||
"transfer": {
|
|
||||||
"title": "Transfer",
|
|
||||||
"chooseCurrency": "Choose Currency",
|
|
||||||
"from": "From",
|
|
||||||
"to": "To",
|
|
||||||
"fundingAccount": "Funding Account",
|
|
||||||
"tradingAccount": "Trading Account",
|
|
||||||
"available": "Available",
|
|
||||||
"amount": "Amount",
|
|
||||||
"enterAmount": "Enter amount",
|
|
||||||
"all": "All",
|
|
||||||
"submit": "Confirm Transfer",
|
|
||||||
"submitting": "Transferring...",
|
|
||||||
"successMessage": "Transfer successful!",
|
|
||||||
"assetCodeRequired": "Please select a currency",
|
|
||||||
"amountRequired": "Please enter amount",
|
|
||||||
"amountMinError": "Amount must be greater than 0",
|
|
||||||
"amountMaxError": "Amount cannot exceed available balance {amount}",
|
|
||||||
"fromAccountRequired": "Please select from account",
|
|
||||||
"toAccountRequired": "Please select to account"
|
|
||||||
},
|
|
||||||
"pwa": {
|
|
||||||
"install": {
|
|
||||||
"installApp": "Install App",
|
|
||||||
"addToHomeScreen": "Add to Home Screen",
|
|
||||||
"howToInstall": "How to Install",
|
|
||||||
"success": "Installation Successful",
|
|
||||||
"successMessage": "The app has been successfully added to your device",
|
|
||||||
"iosTitle": "Install App on iOS",
|
|
||||||
"iosStep1": "1. Tap the Share button at the bottom toolbar",
|
|
||||||
"iosStep2": "2. Scroll down and tap 'Add to Home Screen'",
|
|
||||||
"iosStep3": "3. Tap 'Add' to confirm installation",
|
|
||||||
"iosNote": "Once installed, you can use it like a native app"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"term": {
|
|
||||||
"title": "Terms of Service",
|
|
||||||
"lastUpdate": "Last Updated: January 2026",
|
|
||||||
"introduction": "Welcome to our service. Please read the following terms of service carefully before using this platform. By using this service, you agree to be bound by these terms.",
|
|
||||||
"sections": {
|
|
||||||
"serviceDescription": {
|
|
||||||
"title": "Service Description",
|
|
||||||
"content": {
|
|
||||||
"0": "This platform provides digital asset trading services, including but not limited to spot trading, futures trading, and other financial services.",
|
|
||||||
"1": "We are committed to providing users with a secure, stable, and efficient trading environment, but are not responsible for market fluctuations or trading results.",
|
|
||||||
"2": "The platform reserves the right to modify, suspend, or terminate some or all services at any time without prior notice."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"userResponsibilities": {
|
|
||||||
"title": "User Responsibilities",
|
|
||||||
"content": {
|
|
||||||
"0": "You must be at least 18 years old or have reached the legal age in your jurisdiction to use this service.",
|
|
||||||
"1": "You agree to provide truthful, accurate, and complete registration information and update it in a timely manner to maintain accuracy.",
|
|
||||||
"2": "You are responsible for all activities conducted through your account, including any unauthorized access or use."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"accountSecurity": {
|
|
||||||
"title": "Account Security",
|
|
||||||
"content": {
|
|
||||||
"0": "You are responsible for maintaining the confidentiality of your account password and other security credentials.",
|
|
||||||
"1": "We recommend enabling security features such as two-factor authentication to enhance account security.",
|
|
||||||
"2": "Please notify us immediately if you discover any abnormal account activity or security vulnerabilities."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"prohibitedActivities": {
|
|
||||||
"title": "Prohibited Activities",
|
|
||||||
"content": {
|
|
||||||
"0": "It is strictly prohibited to use this platform for money laundering, terrorist financing, or other illegal activities.",
|
|
||||||
"1": "Market price manipulation, fake trading, or any fraudulent behavior is prohibited.",
|
|
||||||
"2": "You may not use automated programs, bots, or other unauthorized means to access this platform.",
|
|
||||||
"3": "Violation of the above provisions may result in account freezing or permanent ban."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"riskDisclosure": {
|
|
||||||
"title": "Risk Disclosure",
|
|
||||||
"content": {
|
|
||||||
"0": "Digital asset trading is highly speculative and volatile, which may result in partial or total loss of funds.",
|
|
||||||
"1": "Please fully understand market risks before trading and only invest funds you can afford to lose.",
|
|
||||||
"2": "The platform does not provide investment advice, and you are solely responsible for all trading decisions."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"privacyPolicy": {
|
|
||||||
"title": "Privacy Policy",
|
|
||||||
"content": {
|
|
||||||
"0": "We value your privacy and take reasonable measures to protect your personal information.",
|
|
||||||
"1": "We may collect necessary information to provide services, comply with legal requirements, and improve user experience.",
|
|
||||||
"2": "For detailed privacy policy, please refer to our Privacy Policy page."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"intellectualProperty": {
|
|
||||||
"title": "Intellectual Property",
|
|
||||||
"content": {
|
|
||||||
"0": "All content on this platform, including but not limited to text, graphics, logos, and software, is protected by intellectual property laws.",
|
|
||||||
"1": "Without explicit authorization, you may not copy, modify, distribute, or otherwise use platform content."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"disclaimers": {
|
|
||||||
"title": "Disclaimers",
|
|
||||||
"content": {
|
|
||||||
"0": "This service is provided 'as is' without any express or implied warranties.",
|
|
||||||
"1": "We are not responsible for service interruptions, data loss, or any indirect damages.",
|
|
||||||
"2": "We assume no responsibility for third-party services or links."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"termination": {
|
|
||||||
"title": "Termination",
|
|
||||||
"content": {
|
|
||||||
"0": "We reserve the right to terminate or suspend your account at any time, especially in case of violation of these terms.",
|
|
||||||
"1": "After account termination, you remain responsible for actions and obligations prior to termination."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"changes": {
|
|
||||||
"title": "Changes to Terms",
|
|
||||||
"content": {
|
|
||||||
"0": "We may revise these terms of service from time to time, and the revised terms will be published on the platform.",
|
|
||||||
"1": "Continued use of the service indicates your acceptance of the revised terms."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"governingLaw": {
|
|
||||||
"title": "Governing Law",
|
|
||||||
"content": {
|
|
||||||
"0": "These terms are governed by applicable law, and any disputes should be resolved through negotiation.",
|
|
||||||
"1": "If negotiation fails, disputes shall be submitted to a court with jurisdiction."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"contact": {
|
|
||||||
"title": "Contact Us",
|
|
||||||
"description": "If you have any questions about these Terms of Service or need assistance, please contact us:",
|
|
||||||
"email": "Email"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home": {
|
|
||||||
"title": "Home",
|
|
||||||
"rwa": {
|
|
||||||
"title": "RWA Products",
|
|
||||||
"buy": "Buy",
|
|
||||||
"stage": "Stage: "
|
|
||||||
},
|
|
||||||
"news": {
|
|
||||||
"title": "News & Updates"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +1,14 @@
|
|||||||
import { createI18n } from "vue-i18n";
|
import { createI18n } from "vue-i18n";
|
||||||
import ar from "./ar.json";
|
|
||||||
import enUS from "./en-US.json";
|
|
||||||
import zhCN from "./zh-CN.json";
|
import zhCN from "./zh-CN.json";
|
||||||
import zhTW from "./zh-HK.json";
|
|
||||||
|
|
||||||
export type MessageSchema = typeof enUS;
|
export type MessageSchema = typeof zhCN;
|
||||||
|
|
||||||
const i18n = createI18n<MessageSchema, "en-US" | "zh-CN" | "zh-HK" | "ar">({
|
const i18n = createI18n<MessageSchema, "zh-CN">({
|
||||||
legacy: false,
|
legacy: false,
|
||||||
locale: "zh-CN",
|
locale: "zh-CN",
|
||||||
fallbackLocale: "en-US",
|
fallbackLocale: "en-US",
|
||||||
messages: {
|
messages: {
|
||||||
"en-US": enUS,
|
|
||||||
"zh-CN": zhCN,
|
"zh-CN": zhCN,
|
||||||
"zh-HK": zhTW,
|
|
||||||
"ar": ar,
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -342,41 +342,84 @@
|
|||||||
"search": {
|
"search": {
|
||||||
"placeholder": "搜索"
|
"placeholder": "搜索"
|
||||||
},
|
},
|
||||||
|
"tabs": {
|
||||||
|
"rwa": "数字化",
|
||||||
|
"tokenized": "代币化"
|
||||||
|
},
|
||||||
|
"orders": {
|
||||||
|
"title": "持仓"
|
||||||
|
},
|
||||||
"category": {
|
"category": {
|
||||||
"all": "全部"
|
"all": "全部"
|
||||||
},
|
},
|
||||||
"rwaList": {
|
"rwaList": {
|
||||||
"nameCode": "名称/代码",
|
"nameCode": "名称/代码",
|
||||||
"stage": "阶段",
|
"stage": "阶段",
|
||||||
"issueDate": "发行日期",
|
"issueDate": "发行日",
|
||||||
"subscriptionPrice": "申购单价"
|
"subscriptionPrice": "价格"
|
||||||
|
},
|
||||||
|
"tokenizedList": {
|
||||||
|
"nameCode": "名称/代码",
|
||||||
|
"changeRate": "涨跌幅",
|
||||||
|
"tradePrice": "估价"
|
||||||
|
},
|
||||||
|
"holdings": {
|
||||||
|
"unitPrice": "单价",
|
||||||
|
"quantity": "数量",
|
||||||
|
"stage": "阶段",
|
||||||
|
"totalAmount": "总额",
|
||||||
|
"totalDividend": "分红",
|
||||||
|
"tokenize": "资产化",
|
||||||
|
"lock": "锁仓",
|
||||||
|
"tokenizeConfirm": {
|
||||||
|
"title": "确认资产化",
|
||||||
|
"message": "转换为可交易资产将失去分红权,是否继续?",
|
||||||
|
"cancel": "取消",
|
||||||
|
"confirm": "确认"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"active": "持有中",
|
||||||
|
"tokenized": "已资产化",
|
||||||
|
"locked": "已锁仓"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lockOption": {
|
||||||
|
"title": "锁仓期限",
|
||||||
|
"description": "锁仓期间可获得相应奖励",
|
||||||
|
"months": "个月",
|
||||||
|
"reward": "收益",
|
||||||
|
"confirm": "确定",
|
||||||
|
"empty": "暂无锁仓选项",
|
||||||
|
"success": "锁仓成功"
|
||||||
},
|
},
|
||||||
"tradeRwa": {
|
"tradeRwa": {
|
||||||
"tabs": {
|
"tabs": {
|
||||||
"overview": "概览",
|
"overview": "概览",
|
||||||
"moment": "动态"
|
"moment": "动态",
|
||||||
|
"about": "相关文档"
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
"productCode": "产品编号",
|
"productCode": "编号",
|
||||||
"valuation": "估值",
|
"valuation": "估值",
|
||||||
"unitPrice": "单价",
|
"unitPrice": "单价",
|
||||||
"totalSupply": "总发行量",
|
"totalSupply": "总量",
|
||||||
"perUserLimit": "每人限量",
|
"perUserLimit": "限量",
|
||||||
"launchDate": "预热时间",
|
"launchDate": "预热时间",
|
||||||
"subscriptionStartDate": "订阅开始时间",
|
"subscriptionStartDate": "订阅开始",
|
||||||
"subscriptionEndDate": "订阅结束时间"
|
"subscriptionEndDate": "订阅结束"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"shares": "份"
|
"shares": "份"
|
||||||
},
|
},
|
||||||
"about": "About",
|
"about": "介绍",
|
||||||
|
"status": "资产状态",
|
||||||
"noDescription": "暂无描述。",
|
"noDescription": "暂无描述。",
|
||||||
"subscribe": "申购",
|
"subscribe": "申购",
|
||||||
"subscribeSuccess": "申购成功"
|
"subscribeSuccess": "申购成功"
|
||||||
},
|
},
|
||||||
"subscribeRwa": {
|
"subscribeRwa": {
|
||||||
"title": "申购RWA",
|
"title": "申购RWA",
|
||||||
"maxSubscribePlaceholder": "最大可申购数量: {max}",
|
"maxSubscribePlaceholder": "最大可申购: {max}",
|
||||||
"unitPrice": "单价",
|
"unitPrice": "单价",
|
||||||
"availableBalance": "可用余额",
|
"availableBalance": "可用余额",
|
||||||
"confirmSubscribe": "确认申购",
|
"confirmSubscribe": "确认申购",
|
||||||
|
|||||||
@@ -1,360 +0,0 @@
|
|||||||
{
|
|
||||||
"wallet": {
|
|
||||||
"wallet": "錢包",
|
|
||||||
"recharge": "充值",
|
|
||||||
"withdraw": "提現",
|
|
||||||
"transfer": "轉賬",
|
|
||||||
"balance": "餘額"
|
|
||||||
},
|
|
||||||
"recharge": {
|
|
||||||
"channel": {
|
|
||||||
"chainRecharge": "鏈上充值",
|
|
||||||
"chainRechargeDesc": "從鏈上錢包或交易所轉入加密貨幣",
|
|
||||||
"fiatCurrency": "法幣充值",
|
|
||||||
"fiatCurrencyDesc": "通過銀行或其他金融機構轉入法幣"
|
|
||||||
},
|
|
||||||
"fiat": {
|
|
||||||
"title": "法幣充值",
|
|
||||||
"bankAccount": "充值銀行卡賬戶",
|
|
||||||
"chooseCurrency": "選擇貨幣",
|
|
||||||
"amount": "金額",
|
|
||||||
"enterAmount": "請輸入金額",
|
|
||||||
"validAmountError": "請輸入有效的金額。",
|
|
||||||
"note": "請確保輸入正確的金額。提交後,資金將在後臺審核後計入您的賬戶。",
|
|
||||||
"submit": "提交",
|
|
||||||
"submitSuccess": "提交成功!"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"withdraw": {
|
|
||||||
"title": "提現",
|
|
||||||
"chooseCurrency": "選擇貨幣",
|
|
||||||
"chooseMethod": "選擇提現方式",
|
|
||||||
"amount": "金額",
|
|
||||||
"enterAmountMax": "請輸入金額(最大可用:{amount})",
|
|
||||||
"validAmountError": "請輸入有效的金額。",
|
|
||||||
"bankAccountId": "銀行賬戶",
|
|
||||||
"enterBankAccountId": "請輸入銀行賬戶ID",
|
|
||||||
"validBankAccountError": "請輸入有效的銀行賬戶ID。",
|
|
||||||
"chooseChain": "選擇鏈",
|
|
||||||
"cryptoAddress": "加密貨幣地址",
|
|
||||||
"enterCryptoAddress": "請輸入加密貨幣地址",
|
|
||||||
"validCryptoAddressError": "請輸入有效的加密貨幣地址。",
|
|
||||||
"successMessage": "提現申請提交成功!",
|
|
||||||
"submit": "提交",
|
|
||||||
"assetCode": {
|
|
||||||
"USDT": "USDT",
|
|
||||||
"OPTS": "OPTS"
|
|
||||||
},
|
|
||||||
"method": {
|
|
||||||
"bank": "銀行轉賬",
|
|
||||||
"crypto": "加密貨幣",
|
|
||||||
"cash": "現金"
|
|
||||||
},
|
|
||||||
"validation": {
|
|
||||||
"assetCodeRequired": "請選擇貨幣",
|
|
||||||
"amountRequired": "請輸入金額",
|
|
||||||
"amountInvalid": "請輸入有效的數字格式",
|
|
||||||
"amountExceedsBalance": "金額不能超過可用餘額",
|
|
||||||
"amountTooSmall": "金額必須大於0",
|
|
||||||
"methodRequired": "請選擇提現方式",
|
|
||||||
"bankAccountRequired": "請選擇銀行賬戶",
|
|
||||||
"chainRequired": "請選擇區塊鏈網絡",
|
|
||||||
"addressRequired": "請輸入提現地址",
|
|
||||||
"addressTooShort": "地址格式不正確,長度過短"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bankCard": {
|
|
||||||
"management": "銀行卡管理",
|
|
||||||
"add": "添加銀行卡",
|
|
||||||
"empty": {
|
|
||||||
"title": "暫無銀行卡",
|
|
||||||
"description": "添加銀行卡以便快速充值和提現",
|
|
||||||
"addButton": "添加銀行卡"
|
|
||||||
},
|
|
||||||
"list": {
|
|
||||||
"addCard": "添加銀行卡",
|
|
||||||
"boundCards": "已綁定銀行卡",
|
|
||||||
"defaultCard": "默認銀行卡",
|
|
||||||
"setDefault": "設為默認",
|
|
||||||
"edit": "編輯",
|
|
||||||
"delete": "刪除",
|
|
||||||
"cancel": "取消",
|
|
||||||
"debitCard": "儲蓄卡"
|
|
||||||
},
|
|
||||||
"form": {
|
|
||||||
"tips": {
|
|
||||||
"title": "溫馨提示",
|
|
||||||
"description": "為了保障您的資金安全,請確保銀行卡信息真實有效。添加的銀行卡將用於充值和提現操作。"
|
|
||||||
},
|
|
||||||
"bankName": "銀行名稱",
|
|
||||||
"bankNamePlaceholder": "請選擇您的銀行",
|
|
||||||
"accountNumber": "銀行卡號",
|
|
||||||
"accountNumberPlaceholder": "請輸入銀行卡號",
|
|
||||||
"accountNumberHelper": "支持16-19位銀行卡號",
|
|
||||||
"accountName": "持卡人姓名",
|
|
||||||
"accountNamePlaceholder": "請輸入持卡人姓名",
|
|
||||||
"accountNameHelper": "請輸入銀行卡開戶時的真實姓名",
|
|
||||||
"security": {
|
|
||||||
"title": "安全保障",
|
|
||||||
"encryption": "所有銀行卡信息均經過SSL加密傳輸",
|
|
||||||
"standard": "我們嚴格遵循銀行級安全標準",
|
|
||||||
"privacy": "您的個人信息將被妥善保護"
|
|
||||||
},
|
|
||||||
"submit": "確認添加銀行卡",
|
|
||||||
"validation": {
|
|
||||||
"bankRequired": "請選擇銀行",
|
|
||||||
"accountNumberRequired": "請輸入銀行卡號",
|
|
||||||
"accountNameRequired": "請輸入持卡人姓名"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"messages": {
|
|
||||||
"addSuccess": "銀行卡添加成功",
|
|
||||||
"setDefaultSuccess": "已設置為默認銀行卡",
|
|
||||||
"deleteSuccess": "銀行卡刪除成功",
|
|
||||||
"deleteConfirm": "刪除銀行卡",
|
|
||||||
"deleteMessage": "確定要刪除 {bankName} ({accountName}) 嗎?此操作無法撤銷。"
|
|
||||||
},
|
|
||||||
"tips": {
|
|
||||||
"encryption": "銀行卡信息經過加密保護",
|
|
||||||
"support": "支持主流銀行快速充值提現"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"trade": {
|
|
||||||
"title": "交易",
|
|
||||||
"settings": {
|
|
||||||
"bankManagement": "銀行卡管理",
|
|
||||||
"mySubscribe": "我的申購"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"asset": {
|
|
||||||
"issue": {
|
|
||||||
"issuingAsset": "發行資產",
|
|
||||||
"myCompany": "我的企業",
|
|
||||||
"issuingApply": "發行申請",
|
|
||||||
"audit": "審核審計",
|
|
||||||
"supervision": "委託監管",
|
|
||||||
"apply": {
|
|
||||||
"title": "發行申請",
|
|
||||||
"base": "基礎信息",
|
|
||||||
"issuePeriod": "發行期",
|
|
||||||
"productName": "產品名稱",
|
|
||||||
"enterProductName": "請輸入產品名稱",
|
|
||||||
"productCode": "產品編碼",
|
|
||||||
"enterProductCode": "請輸入產品編碼",
|
|
||||||
"productType": "產品類型",
|
|
||||||
"chooseProductType": "請選擇產品類型",
|
|
||||||
"productValue": "產品估值",
|
|
||||||
"enterProductValue": "請輸入產品估值(美元)",
|
|
||||||
"assetProof": "資產證明",
|
|
||||||
"enterAssetProof": "請輸入資產證明",
|
|
||||||
"uploadAssetProof": "上傳資產證明文件",
|
|
||||||
"totalSupplyLimit": "總發行量上限",
|
|
||||||
"enterTotalSupplyLimit": "請輸入總發行量上限",
|
|
||||||
"editionName": "發行期名稱",
|
|
||||||
"enterEditionName": "請輸入發行期名稱",
|
|
||||||
"launchDate": "預熱時間",
|
|
||||||
"enterLaunchDate": "請輸入預熱時間",
|
|
||||||
"perUserLimit": "個人申購上限",
|
|
||||||
"enterPerUserLimit": "請輸入個人申購上限",
|
|
||||||
"totalSupply": "發行總量",
|
|
||||||
"enterTotalSupply": "請輸入發行總量",
|
|
||||||
"subscriptionStartDate": "訂閱開始時間",
|
|
||||||
"subscriptionEndDate": "訂閱結束時間",
|
|
||||||
"unitPrice": "單價",
|
|
||||||
"enterUnitPrice": "請輸入單價",
|
|
||||||
"dividendRate": "分紅率",
|
|
||||||
"enterDividendRate": "分紅率(如0.01代表1%)",
|
|
||||||
"description": "產品描述",
|
|
||||||
"enterDescription": "請輸入產品描述",
|
|
||||||
"issuePeriodIndex": "發行期 {index}",
|
|
||||||
"realEstate": "房地產",
|
|
||||||
"snickers": "糖果",
|
|
||||||
"next": "下一步",
|
|
||||||
"back": "返回",
|
|
||||||
"submit": "提交",
|
|
||||||
"addStep": "添加發行期",
|
|
||||||
"removeItem": "移除項目",
|
|
||||||
"validation": {
|
|
||||||
"nameRequired": "產品名稱是必填項",
|
|
||||||
"codeRequired": "產品編碼是必填項",
|
|
||||||
"categoryRequired": "產品類型是必填項",
|
|
||||||
"editionNameRequired": "發行期名稱是必填項",
|
|
||||||
"launchDateRequired": "預熱時間是必填項",
|
|
||||||
"launchDateNotPast": "預熱時間不能早於當前時間",
|
|
||||||
"launchBeforeSubscription": "預熱時間必須在訂閱開始時間之前",
|
|
||||||
"subscriptionStartDateRequired": "訂閱開始時間是必填項",
|
|
||||||
"subscriptionStartDateNotPast": "訂閱開始時間不能早於當前時間",
|
|
||||||
"subscriptionAfterLaunch": "訂閱開始時間必須在預熱時間之後",
|
|
||||||
"subscriptionEndDateRequired": "訂閱結束時間是必填項",
|
|
||||||
"subscriptionEndAfterStart": "訂閱結束時間必須在訂閱開始時間之後",
|
|
||||||
"perUserLimitRequired": "個人申購上限是必填項",
|
|
||||||
"totalSupplyRequired": "發行總量是必填項",
|
|
||||||
"unitPriceRequired": "單價是必填項",
|
|
||||||
"dividendRateRequired": "分紅率是必填項"
|
|
||||||
},
|
|
||||||
"done": {
|
|
||||||
"title": "申請提交成功",
|
|
||||||
"description": "您的發行申請已成功提交,我們將在工作日內對您的申請進行審核。請耐心等待審核結果。",
|
|
||||||
"viewProducts": "查看我的產品"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"purchase": {
|
|
||||||
"purchaseAsset": "購買資產",
|
|
||||||
"fiatPurchase": "法幣購買",
|
|
||||||
"cryptoPurchase": "數字貨幣購買",
|
|
||||||
"realEstate": "房地產",
|
|
||||||
"assetExchange": "資產交換"
|
|
||||||
},
|
|
||||||
"balance": {
|
|
||||||
"assetBalance": "資產餘額",
|
|
||||||
"fiat": "法幣",
|
|
||||||
"onChain": "鏈上",
|
|
||||||
"wallet": "錢包",
|
|
||||||
"recharge": "充值"
|
|
||||||
},
|
|
||||||
"revenue": {
|
|
||||||
"myRevenue": "我的收益",
|
|
||||||
"totalRevenue": "總收益",
|
|
||||||
"monthlyRevenue": "月度收益",
|
|
||||||
"pendingRevenue": "待確認收益",
|
|
||||||
"revenueDetails": "收益明細"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"myIssues": {
|
|
||||||
"title": "我的發行申請",
|
|
||||||
"search": "搜索",
|
|
||||||
"list": {
|
|
||||||
"nameCode": "名稱/代碼",
|
|
||||||
"createdAt": "創建時間",
|
|
||||||
"status": "狀態"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"draft": "草稿",
|
|
||||||
"under_review": "待審核",
|
|
||||||
"approved": "審核通過",
|
|
||||||
"rejected": "審核拒絕"
|
|
||||||
},
|
|
||||||
"loadMore": "加載更多"
|
|
||||||
},
|
|
||||||
"market": {
|
|
||||||
"title": "市場",
|
|
||||||
"search": {
|
|
||||||
"placeholder": "搜索"
|
|
||||||
},
|
|
||||||
"category": {
|
|
||||||
"all": "全部"
|
|
||||||
},
|
|
||||||
"rwaList": {
|
|
||||||
"nameCode": "名稱/代碼",
|
|
||||||
"stage": "階段",
|
|
||||||
"issueDate": "發行日期",
|
|
||||||
"subscriptionPrice": "申購單價"
|
|
||||||
},
|
|
||||||
"tradeRwa": {
|
|
||||||
"tabs": {
|
|
||||||
"overview": "概覽",
|
|
||||||
"moment": "動態"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"productCode": "產品編號",
|
|
||||||
"valuation": "估值",
|
|
||||||
"unitPrice": "單價",
|
|
||||||
"totalSupply": "總發行量",
|
|
||||||
"perUserLimit": "每人限量",
|
|
||||||
"launchDate": "預熱時間",
|
|
||||||
"subscriptionStartDate": "訂閱開始時間",
|
|
||||||
"subscriptionEndDate": "訂閱結束時間"
|
|
||||||
},
|
|
||||||
"units": {
|
|
||||||
"shares": "份"
|
|
||||||
},
|
|
||||||
"about": "About",
|
|
||||||
"noDescription": "暫無描述。",
|
|
||||||
"subscribe": "申購",
|
|
||||||
"subscribeSuccess": "申購成功"
|
|
||||||
},
|
|
||||||
"subscribeRwa": {
|
|
||||||
"title": "申購RWA",
|
|
||||||
"maxSubscribePlaceholder": "最大可申購數量: {max}",
|
|
||||||
"unitPrice": "單價",
|
|
||||||
"availableBalance": "可用餘額",
|
|
||||||
"confirmSubscribe": "確認申購",
|
|
||||||
"enterQuantityError": "請輸入申購數量"
|
|
||||||
},
|
|
||||||
"loading": {
|
|
||||||
"loadingMore": "加載更多..."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tabs": {
|
|
||||||
"riwa": "Riwa",
|
|
||||||
"market": "市場",
|
|
||||||
"trade": "交易",
|
|
||||||
"chat": "聊天",
|
|
||||||
"user": "我的"
|
|
||||||
},
|
|
||||||
"common": {
|
|
||||||
"failedSendCode": "發送驗證碼失敗",
|
|
||||||
"uploadFile": "上傳文件",
|
|
||||||
"files": "個文件"
|
|
||||||
},
|
|
||||||
"auth": {
|
|
||||||
"login": {
|
|
||||||
"title": "登錄",
|
|
||||||
"loginButton": "登錄",
|
|
||||||
"signupButton": "註冊",
|
|
||||||
"username": "郵箱",
|
|
||||||
"phone": "手機號碼",
|
|
||||||
"selectCountryCode": "選擇國家/地區",
|
|
||||||
"enterEmail": "請輸入郵箱",
|
|
||||||
"enterCode": "請輸入驗證碼",
|
|
||||||
"enterOtp": "請輸入驗證碼",
|
|
||||||
"getCode": "獲取驗證碼",
|
|
||||||
"sending": "發送中...",
|
|
||||||
"sendCodeSuccess": "驗證碼已發送",
|
|
||||||
"validation": {
|
|
||||||
"phoneNumberRequired": "請輸入手機號碼",
|
|
||||||
"phoneNumberInvalid": "請輸入有效的手機號碼",
|
|
||||||
"codeRequired": "請輸入驗證碼",
|
|
||||||
"codeInvalid": "請輸入6位數字驗證碼",
|
|
||||||
"emailRequired": "請輸入郵箱",
|
|
||||||
"emailInvalid": "請輸入有效的郵箱地址",
|
|
||||||
"otpRequired": "請輸入驗證碼",
|
|
||||||
"otpInvalid": "請輸入6位數字驗證碼"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"title": "設置",
|
|
||||||
"language": "語言",
|
|
||||||
"aboutUs": "關於我們",
|
|
||||||
"clearCache": "清除緩存",
|
|
||||||
"checkUpdate": "檢查更新",
|
|
||||||
"cacheCleared": "緩存已清除",
|
|
||||||
"updateAvailable": "發現新版本",
|
|
||||||
"currentVersion": "當前版本",
|
|
||||||
"latestVersion": "最新版本",
|
|
||||||
"newVersion": "新版本",
|
|
||||||
"cancel": "取消",
|
|
||||||
"updateNow": "立即更新",
|
|
||||||
"alreadyLatest": "已是最新版本",
|
|
||||||
"checkUpdateFailed": "檢查更新失敗",
|
|
||||||
"languageTitle": "語言 / Language",
|
|
||||||
"theme": "主題",
|
|
||||||
"themeTitle": "外觀主題",
|
|
||||||
"themeLight": "淺色",
|
|
||||||
"themeDark": "深色",
|
|
||||||
"themeAuto": "跟隨系統"
|
|
||||||
},
|
|
||||||
"home": {
|
|
||||||
"title": "首頁",
|
|
||||||
"rwa": {
|
|
||||||
"title": "RWA產品",
|
|
||||||
"buy": "購 入",
|
|
||||||
"stage": "階段:"
|
|
||||||
},
|
|
||||||
"news": {
|
|
||||||
"title": "動態新聞"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,6 +7,8 @@ const emit = defineEmits<{
|
|||||||
close: [];
|
close: [];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
const { data } = safeClient(client.api.rwa.tokenization.lock_options.get({ query: { productId: props.id } }));
|
const { data } = safeClient(client.api.rwa.tokenization.lock_options.get({ query: { productId: props.id } }));
|
||||||
|
|
||||||
const selectedOption = ref<{ months: number; rewardRate: string } | null>(null);
|
const selectedOption = ref<{ months: number; rewardRate: string } | null>(null);
|
||||||
@@ -18,7 +20,7 @@ async function handleSubmit() {
|
|||||||
}));
|
}));
|
||||||
emit("close");
|
emit("close");
|
||||||
const toast = await toastController.create({
|
const toast = await toastController.create({
|
||||||
message: "锁仓成功",
|
message: t("market.lockOption.success"),
|
||||||
duration: 2000,
|
duration: 2000,
|
||||||
position: "bottom",
|
position: "bottom",
|
||||||
color: "success",
|
color: "success",
|
||||||
@@ -31,10 +33,10 @@ async function handleSubmit() {
|
|||||||
<div class="ion-padding">
|
<div class="ion-padding">
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<h3 class="text-lg font-semibold mb-2">
|
<h3 class="text-lg font-semibold mb-2">
|
||||||
选择锁仓期限
|
{{ t('market.lockOption.title') }}
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-sm text-text-500">
|
<p class="text-sm text-text-500">
|
||||||
选择锁仓月数,锁仓期间可获得相应奖励
|
{{ t('market.lockOption.description') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -47,14 +49,14 @@ async function handleSubmit() {
|
|||||||
class="bg-faint rounded-md mb-3"
|
class="bg-faint rounded-md mb-3"
|
||||||
>
|
>
|
||||||
<ion-radio :value="option" justify="space-between" color="primary">
|
<ion-radio :value="option" justify="space-between" color="primary">
|
||||||
<div>{{ option.months }} 个月 - {{ (Number(option.rewardRate) * 100).toFixed(2) }}% 收益</div>
|
<div>{{ option.months }} {{ t('market.lockOption.months') }} - {{ (Number(option.rewardRate) * 100).toFixed(2) }}% {{ t('market.lockOption.reward') }}</div>
|
||||||
</ion-radio>
|
</ion-radio>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-radio-group>
|
</ion-radio-group>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ui-empty v-else-if="!data || data.lockOptions.length === 0" description="暂无锁仓选项" />
|
<ui-empty v-else-if="!data || data.lockOptions.length === 0" :description="t('market.lockOption.empty')" />
|
||||||
|
|
||||||
<ion-button
|
<ion-button
|
||||||
expand="block"
|
expand="block"
|
||||||
@@ -64,7 +66,7 @@ async function handleSubmit() {
|
|||||||
class="mt-6 h-12"
|
class="mt-6 h-12"
|
||||||
@click="handleSubmit"
|
@click="handleSubmit"
|
||||||
>
|
>
|
||||||
确定
|
{{ t('market.lockOption.confirm') }}
|
||||||
</ion-button>
|
</ion-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -42,23 +42,23 @@ function getStatusColor(status: string) {
|
|||||||
}
|
}
|
||||||
function getStatusText(status: HoldingItem["status"]) {
|
function getStatusText(status: HoldingItem["status"]) {
|
||||||
const statusMap = {
|
const statusMap = {
|
||||||
active: t("holdings.status.active"),
|
active: t("market.holdings.status.active"),
|
||||||
tokenized: t("holdings.status.tokenized"),
|
tokenized: t("market.holdings.status.tokenized"),
|
||||||
locked: t("holdings.status.locked"),
|
locked: t("market.holdings.status.locked"),
|
||||||
};
|
};
|
||||||
return statusMap[status];
|
return statusMap[status];
|
||||||
}
|
}
|
||||||
async function handleTokenized(item: HoldingItem) {
|
async function handleTokenized(item: HoldingItem) {
|
||||||
const alert = await alertController.create({
|
const alert = await alertController.create({
|
||||||
header: "资产化确认",
|
header: t("market.holdings.tokenizeConfirm.title"),
|
||||||
message: "将持仓转换为可交易资产(失去分红权),是否继续?",
|
message: t("market.holdings.tokenizeConfirm.message"),
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
text: "取消",
|
text: t("market.holdings.tokenizeConfirm.cancel"),
|
||||||
role: "cancel",
|
role: "cancel",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "确认",
|
text: t("market.holdings.tokenizeConfirm.confirm"),
|
||||||
role: "destructive",
|
role: "destructive",
|
||||||
handler: async () => {
|
handler: async () => {
|
||||||
await safeClient(client.api.rwa.tokenization.immediate.post({ productId: item.productId }));
|
await safeClient(client.api.rwa.tokenization.immediate.post({ productId: item.productId }));
|
||||||
@@ -117,23 +117,23 @@ onMounted(() => {
|
|||||||
|
|
||||||
<div class="grid grid-cols-2 gap-2 mb-2">
|
<div class="grid grid-cols-2 gap-2 mb-2">
|
||||||
<div class="flex justify-between text-xs">
|
<div class="flex justify-between text-xs">
|
||||||
<span class="text-(--ion-text-color-step-400)">单价</span>
|
<span class="text-(--ion-text-color-step-400)">{{ t('market.holdings.unitPrice') }}</span>
|
||||||
<span class="text-(--ion-text-color) font-medium">${{ Number(item.subscriptionOrder.unitPrice).toFixed(2) }}</span>
|
<span class="text-(--ion-text-color) font-medium">${{ Number(item.subscriptionOrder.unitPrice).toFixed(2) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between text-xs">
|
<div class="flex justify-between text-xs">
|
||||||
<span class="text-(--ion-text-color-step-400)">数量</span>
|
<span class="text-(--ion-text-color-step-400)">{{ t('market.holdings.quantity') }}</span>
|
||||||
<span class="text-(--ion-text-color) font-medium">{{ Number(item.quantity).toFixed(2) }}份</span>
|
<span class="text-(--ion-text-color) font-medium">{{ Number(item.quantity).toFixed(2) }}份</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between text-xs">
|
<div class="flex justify-between text-xs">
|
||||||
<span class="text-(--ion-text-color-step-400)">阶段</span>
|
<span class="text-(--ion-text-color-step-400)">{{ t('market.holdings.stage') }}</span>
|
||||||
<span class="text-(--ion-text-color) font-medium">{{ item.edition.editionName }}</span>
|
<span class="text-(--ion-text-color) font-medium">{{ item.edition.editionName }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between text-xs">
|
<div class="flex justify-between text-xs">
|
||||||
<span class="text-(--ion-text-color-step-400)">总额</span>
|
<span class="text-(--ion-text-color-step-400)">{{ t('market.holdings.totalAmount') }}</span>
|
||||||
<span class="text-(--ion-text-color) font-medium">${{ item.costValue }}</span>
|
<span class="text-(--ion-text-color) font-medium">${{ item.costValue }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between text-xs">
|
<div class="flex justify-between text-xs">
|
||||||
<span class="text-(--ion-text-color-step-400)">总分红</span>
|
<span class="text-(--ion-text-color-step-400)">{{ t('market.holdings.totalDividend') }}</span>
|
||||||
<span class="text-(--ion-text-color) font-medium">${{ Number(item.totalDividendReceived).toFixed(2) }}</span>
|
<span class="text-(--ion-text-color) font-medium">${{ Number(item.totalDividendReceived).toFixed(2) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -143,10 +143,10 @@ onMounted(() => {
|
|||||||
|
|
||||||
<div v-if="item.status === 'active'" class="flex-1 text-right space-x-2">
|
<div v-if="item.status === 'active'" class="flex-1 text-right space-x-2">
|
||||||
<ion-button size="small" @click="handleTokenized(item)">
|
<ion-button size="small" @click="handleTokenized(item)">
|
||||||
资产化
|
{{ t('market.holdings.tokenize') }}
|
||||||
</ion-button>
|
</ion-button>
|
||||||
<ion-button size="small" @click="handleLocked(item)">
|
<ion-button size="small" @click="handleLocked(item)">
|
||||||
立即锁仓
|
{{ t('market.holdings.lock') }}
|
||||||
</ion-button>
|
</ion-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ defineProps<{
|
|||||||
data: TradableData[];
|
data: TradableData[];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
function gotoTokenized(id: string) {
|
function gotoTokenized(id: string) {
|
||||||
@@ -18,16 +19,16 @@ function gotoTokenized(id: string) {
|
|||||||
<ion-grid>
|
<ion-grid>
|
||||||
<ion-row class="ion-align-items-center text-xs text-text-500">
|
<ion-row class="ion-align-items-center text-xs text-text-500">
|
||||||
<ion-col size="6">
|
<ion-col size="6">
|
||||||
<div>名称/代码</div>
|
<div>{{ t('market.tokenizedList.nameCode') }}</div>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col>
|
<ion-col>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
涨跌幅
|
{{ t('market.tokenizedList.changeRate') }}
|
||||||
</div>
|
</div>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<ion-col>
|
<ion-col>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
交易价估算
|
{{ t('market.tokenizedList.tradePrice') }}
|
||||||
</div>
|
</div>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
</ion-row>
|
</ion-row>
|
||||||
|
|||||||
@@ -39,10 +39,10 @@ async function handleRefresh(event: RefresherCustomEvent) {
|
|||||||
</ion-refresher>
|
</ion-refresher>
|
||||||
|
|
||||||
<ui-tabs type="segment" class="tabs" size="small">
|
<ui-tabs type="segment" class="tabs" size="small">
|
||||||
<ui-tab-pane name="rwa" title="数字化产品">
|
<ui-tab-pane name="rwa" :title="t('market.tabs.rwa')">
|
||||||
<RwaTab ref="rwaInst" />
|
<RwaTab ref="rwaInst" />
|
||||||
</ui-tab-pane>
|
</ui-tab-pane>
|
||||||
<ui-tab-pane name="tokenized" title="代币化产品">
|
<ui-tab-pane name="tokenized" :title="t('market.tabs.tokenized')">
|
||||||
<TokenizedTab ref="tokenizedInst" />
|
<TokenizedTab ref="tokenizedInst" />
|
||||||
</ui-tab-pane>
|
</ui-tab-pane>
|
||||||
</ui-tabs>
|
</ui-tabs>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import RwaOrders from "./components/rwa-orders.vue";
|
import RwaOrders from "./components/rwa-orders.vue";
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -7,7 +9,7 @@ import RwaOrders from "./components/rwa-orders.vue";
|
|||||||
<ion-header class="ion-no-border">
|
<ion-header class="ion-no-border">
|
||||||
<ion-toolbar class="ion-toolbar">
|
<ion-toolbar class="ion-toolbar">
|
||||||
<ui-back-button slot="start" />
|
<ui-back-button slot="start" />
|
||||||
<ion-title>持仓</ion-title>
|
<ion-title>{{ t('market.orders.title') }}</ion-title>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content :fullscreen="true" class="ion-padding">
|
<ion-content :fullscreen="true" class="ion-padding">
|
||||||
|
|||||||
@@ -4,13 +4,15 @@ import type { RwaData } from "@/api/types";
|
|||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
data: RwaData | null;
|
data: RwaData | null;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<div>
|
<div>
|
||||||
<div class="font-semibold mb-4">
|
<div class="font-semibold mb-4">
|
||||||
相关文档
|
{{ t('market.tradeRwa.tabs.about') }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ui-file-preview :file-ids="props.data?.product.proofDocumentIds || []" />
|
<ui-file-preview :file-ids="props.data?.product.proofDocumentIds || []" />
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ const { t } = useI18n();
|
|||||||
<!-- Rwa status -->
|
<!-- Rwa status -->
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
<div class="font-semibold">
|
<div class="font-semibold">
|
||||||
资产状态
|
{{ t('market.tradeRwa.status') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-xs mt-2">
|
<div class="text-xs mt-2">
|
||||||
{{ data?.status }}
|
{{ data?.status }}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ function gotoEdit() {
|
|||||||
<ui-tab-pane name="overview" :title="t('market.tradeRwa.tabs.overview')">
|
<ui-tab-pane name="overview" :title="t('market.tradeRwa.tabs.overview')">
|
||||||
<RwaBase :data="data" />
|
<RwaBase :data="data" />
|
||||||
</ui-tab-pane>
|
</ui-tab-pane>
|
||||||
<ui-tab-pane name="about" title="相关文档" lazy>
|
<ui-tab-pane name="about" :title="t('market.tradeRwa.tabs.about')" lazy>
|
||||||
<RwaAbout :data="data" />
|
<RwaAbout :data="data" />
|
||||||
</ui-tab-pane>
|
</ui-tab-pane>
|
||||||
</ui-tabs>
|
</ui-tabs>
|
||||||
|
|||||||
Reference in New Issue
Block a user