diff --git a/.gitignore b/.gitignore
index 5211649..44cf859 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ package-lock.json
/unpackage/dist/build/app-plus
*.lock
/.logs/*
+/portal-ui/vite.config.js.timestamp-1775717209686-71db82cf15ae7.mjs
diff --git a/portal-ui/src/lang/ar_SA/common.js b/portal-ui/src/lang/ar_SA/common.js
deleted file mode 100644
index b10cb8f..0000000
--- a/portal-ui/src/lang/ar_SA/common.js
+++ /dev/null
@@ -1,179 +0,0 @@
-export default {
- image1: 'خلع بضغطة واحدة',
- image2: 'صورة إلى صورة 2',
- uploadImage: 'رفع صورة',
- uploadImageTip: 'PNG/JPG، بحد أقصى 10 ميجا',
- uploadPlaceholder: 'انقر لرفع صورة',
- selectImageSource: 'اختر مصدر الصورة',
- selectTemplate: 'اختر القالب',
- reselectTemplate: 'إعادة اختيار القالب',
- noTemplates: 'لا توجد قوالب',
- tag1: 'نوع الوسم 1',
- tag2: 'نوع الوسم 2',
- tag3: 'نوع الوسم 3',
- generateImage: 'إنشاء الآن (يخصم {score} من الرصيد)',
- generateImageNow: 'إنشاء الآن',
- generateTip: 'بعد الإرسال يمكنك المشاهدة في "أعمالي"',
- generateVideo: 'إنشاء فيديو',
- imageFace: 'تبديل الوجه في صورة',
- videoFace: 'تبديل الوجه في فيديو',
- uploadImageFace: 'انقر لرفع صورة الوجه',
- uploadTemplate: 'انقر لرفع قالب مخصص',
- textPlaceholder: 'صف الصورة التي تريد إنشاءها',
- uploadImageError: 'يرجى رفع صورة',
- replaceImage: 'استبدال الصورة',
- uploadFaceImageError: 'يرجى رفع صورة الوجه',
- uploadTemplateError: 'يرجى رفع قالب مخصص',
- textError: 'يرجى إدخال النص التوجيهي',
- textVideoPlaceholder: 'صف الفيديو الذي تريد إنشاءه',
- uploadFirstPlaceholder: 'انقر لرفع الإطار الأول',
- uploadLastPlaceholder: 'انقر لرفع الإطار الأخير',
- uploadFirstImageError: 'يرجى رفع صورة الإطار الأول',
- uploadWaitImageError: 'يرجى انتظار انتهاء الرفع',
- saveVideo: 'تحميل الفيديو',
- videoLoadingText: 'جاري إنشاء الفيديو...',
- viewVideo: 'عرض الفيديو',
- changeFacePrompt: 'أخذ الوجه من الصورة الثانية واستبداله بالوجه في الأولى',
- rechartTip1: 'عند الشحن via المحفظة تأكد من شبكة المحفظة.',
- rechartTip2: 'قد يتأخر الشحن؛ انتظر 3–5 دقائق ثم حدّث.',
- walletAddr: 'عنوان المحفظة:',
- fbTitle: 'تحذير! هذا الموقع للبالغين فقط!',
- fbContent: 'بالدخول أؤكد أن عمري 18 سنة أو أكثر',
- fbCancel: 'أقل من 18',
- fbOK: 'عمري 18+',
- sorry: 'عذراً!',
- useLess: 'لا يمكنك استخدام هذا الموقع...',
- loginAccount: 'تسجيل الدخول',
- logout: 'تسجيل الخروج',
- userEmailPlaceholder: 'أدخل البريد أو اسم المستخدم',
- passwordPlaceholder: 'أدخل كلمة المرور',
- forgetPassword: 'نسيت كلمة المرور؟',
- register: 'التسجيل',
- login: 'دخول',
- forgotPassword: 'نسيت كلمة المرور',
- registerAccount: 'إنشاء حساب',
- usernamePlaceholder: 'أدخل اسم المستخدم',
- codePlaceholder: 'أدخل رمز التحقق',
- confirmPasswordPlaceholder: 'تأكيد كلمة المرور',
- backToLogin: 'العودة لتسجيل الدخول',
- send: 'إرسال',
- emailValidPlaceholder: 'أدخل بريداً إلكترونياً صحيحاً',
- confirmPwdValidMsg: 'كلمات المرور غير متطابقة',
- editPassword: 'تغيير كلمة المرور',
- recharge: 'شحن',
- myAccount: 'حسابي',
- moneyInvite: 'دعوة مكافآت',
- rechargeRecord: 'سجل الشحن',
- resumeRecord: 'سجل الاستهلاك',
- inviteRecord: 'سجل الدعوات',
- username: 'اسم المستخدم',
- userId: 'معرف المستخدم',
- accountAmount: 'الرصيد',
- editUserInfo: 'تعديل البيانات',
- contact: 'تواصل معنا',
- backToUser: 'رجوع',
- moneyTips: 'عند دعوة صديق للتسجيل تحصل على {rate} من مبلغ شحنه في كل مرة.',
- inviteCode: 'رمز الدعوة',
- inviteLink: 'رابط الدعوة',
- saveImage: 'حفظ الصورة',
- totalAmount: 'إجمالي الشحن',
- amount: 'المبلغ',
- sendAmount: 'مبلغ الهدية',
- rechargeType: 'طريقة الشحن',
- rechargeTime: 'وقت الشحن',
- emptyText: 'لا توجد بيانات',
- product: 'عمل',
- resumeAmount: 'المبلغ المستهلك',
- productType: 'نوع العمل',
- productTime: 'وقت الإنشاء',
- totalReward: 'رصيد المكافآت',
- rewardAmount: 'مبلغ المكافأة',
- rewardTime: 'وقت المكافأة',
- reSend: 'إعادة الإرسال',
- registerSuccessfully: 'تم التسجيل بنجاح',
- loginSuccessfully: 'تم تسجيل الدخول',
- passwordResetSuccessfully: 'تم إعادة تعيين كلمة المرور',
- rechargeSuccessfully: 'تم الشحن بنجاح',
- avatar: 'الصورة الرمزية',
- input: 'أدخل',
- save: 'حفظ',
- editEmail: 'تغيير البريد',
- editEmailSuccessfully: 'تم تحديث البريد',
- updateAvatarSuccessfully: 'تم تحديث الصورة الرمزية',
- balenceLow: 'رصيدك غير كافٍ، يرجى الشحن',
- confirm: 'تأكيد',
- createFailed: 'فشل الإنشاء، تمت إعادة الرصيد',
- notice: 'تنبيه',
- oldPasswordPlaceholder: 'أدخل كلمة المرور القديمة',
- newpasswordPlaceholder: 'أدخل كلمة المرور الجديدة',
- switchPageTip: 'الفيديو قيد الإنشاء؛ اخرج وتحقق من سجل الاستهلاك.',
- loginless: 'انتهت الجلسة! يرجى تسجيل الدخول مجدداً.',
- createVideo: 'إنشاء فيديو (يخصم {price} من الرصيد)',
- ok: 'تأكيد',
- rechartNotice: 'تعليمات الشحن',
- rechargeNotice1: '1. يُضاف الشحن فوراً. إن لم يتغير الرصيد حدّث الصفحة.',
- rechargeNotice2: '2. الباقات المحدودة عروض؛ يمكنك الشحن أكثر من مرة.',
- rechargeNotice3: '3. الرصيد المشحون لا ينتهي صلاحيته.',
- rechargeNotice4: 'راجع الباقة قبل الشراء؛ لا استرداد.',
- rechargeLeft: 'الرصيد',
- dollor: 'USD',
- isDevelop: 'قيد التطوير.',
- copySuccessfully: 'تم النسخ',
- copyLink: 'نسخ الرابط',
- goPay: 'الذهاب للدفع',
- filePreview: 'معاينة',
- doSame: 'عمل نسخة مشابهة',
- saveQRCode: 'حفظ رمز QR',
- invitationCodePlaceholder: 'أدخل رمز الدعوة',
- testRecharge: 'شحن تجريبي',
- orderNo: 'رقم الطلب',
- orderNoP: 'رقم الطلب مطلوب',
- emailNotExists: 'هذا البريد غير مسجّل',
- gearNotExists: 'خطة الشحن المختارة غير موجودة؛ اختر غيرها.',
- myProduct: 'أعمالي',
- permissionError: 'إجمالي شحنك {total}، لا يكفي للمعاينة.',
- createTagFailed: 'فشل الإنشاء؛ حدّث وجرب مرة أخرى.',
- loadingText: 'جاري التحميل...',
- hasMore: 'اسحب لأعلى للمزيد',
- noMore: 'لا مزيد',
- giftAmount: 'المبلغ المُستَوفى',
- cardNo: 'رقم البطاقة',
- cardName: 'اسم صاحب البطاقة',
- cardNoRequired: 'أدخل رقم البطاقة',
- cardNameRequired: 'أدخل اسم صاحب البطاقة',
- rechargeFailed: 'فشل الشحن',
- vmCardInfo: 'بيانات البطاقة',
- cardNumber: 'رقم البطاقة',
- cardNumberPlaceholder: 'أدخل رقم البطاقة',
- cardNumberRequired: 'أدخل رقم البطاقة',
- cardNumberInvalid: 'رقم البطاقة يجب أن يكون 13–19 رقماً',
- cvc: 'CVC',
- cvcPlaceholder: 'أدخل CVC',
- cvcRequired: 'أدخل CVC',
- cvcInvalid: 'CVC يجب أن يكون 3 أرقام',
- expYear: 'سنة انتهاء الصلاحية',
- expYearPlaceholder: 'أدخل السنة (مثل 2027)',
- expYearRequired: 'أدخل سنة انتهاء الصلاحية',
- expYearInvalid: 'السنة يجب أن تكون 4 أرقام',
- expMonth: 'شهر انتهاء الصلاحية',
- expMonthPlaceholder: 'اختر الشهر',
- expMonthRequired: 'اختر الشهر',
- email: 'البريد',
- emailPlaceholder: 'أدخل البريد',
- emailRequired: 'أدخل البريد',
- emailInvalid: 'صيغة البريد غير صحيحة',
- emailMaxLength: 'البريد لا يتجاوز 30 حرفاً',
- firstName: 'الاسم الأول',
- firstNamePlaceholder: 'أدخل الاسم الأول',
- firstNameRequired: 'أدخل الاسم الأول',
- firstNameMaxLength: 'الاسم لا يتجاوز 30 حرفاً',
- lastName: 'اسم العائلة',
- lastNamePlaceholder: 'أدخل اسم العائلة',
- lastNameRequired: 'أدخل اسم العائلة',
- lastNameMaxLength: 'اسم العائلة لا يتجاوز 30 حرفاً',
- country: 'الدولة',
- countryPlaceholder: 'اختر الدولة',
- countryRequired: 'اختر الدولة',
- submit: 'إرسال',
- cancel: 'إلغاء'
-}
diff --git a/portal-ui/src/lang/ar_SA/index.js b/portal-ui/src/lang/ar_SA/index.js
deleted file mode 100644
index 1136137..0000000
--- a/portal-ui/src/lang/ar_SA/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/ar_SA/route.js b/portal-ui/src/lang/ar_SA/route.js
deleted file mode 100644
index 607b436..0000000
--- a/portal-ui/src/lang/ar_SA/route.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- index: 'الرئيسية',
- imageToImage: 'خلع بضغطة واحدة',
- imageToImage2: 'صورة إلى صورة 2',
- changeFace: 'تبديل الوجه',
- changeFaceVideo: 'تبديل الوجه في الفيديو',
- fastImage: 'إنشاء صورة',
- fastVideo: 'إنشاء فيديو',
- recharge: 'شحن سريع',
- help: 'مركز المساعدة',
- moneyInvite: 'دعوة مكافآت',
- assetGroupManage: 'إدارة مجموعات الأصول',
- assetManage: 'إدارة الأصول',
- thirdPartyAsset: 'أصول الطرف الثالث'
-}
diff --git a/portal-ui/src/lang/en_US/common.js b/portal-ui/src/lang/en_US/common.js
deleted file mode 100644
index efe9486..0000000
--- a/portal-ui/src/lang/en_US/common.js
+++ /dev/null
@@ -1,191 +0,0 @@
-export default {
- image1: "One-click undressing",
- image2: 'Image-to-Image 2',
- uploadImage: 'Upload Image',
- uploadImageTip: 'Supports PNG/JPG up to 10MB',
- uploadPlaceholder: 'Click to upload image',
- selectImageSource: 'Select Image Source',
- selectTemplate: 'Select Template',
- reselectTemplate: 'Reselect Template',
- noTemplates: 'No Templates Available',
- tag1: 'Tag Type 1',
- tag2: 'Tag Type 2',
- tag3: 'Tag Type 3',
- generateImage: 'Generate Now (costs {score} balance)',
- generateImageNow: 'Generate Now',
- generateTip: 'Tip: After submission, you can view it in "My Works"',
- generateVideo: 'Generate Video',
- imageFace: 'Image Face Swap',
- videoFace: 'Video Face Swap',
- uploadImageFace: 'Click to upload face image',
- uploadFaceImageError: 'Please upload a face image',
- uploadTemplateError: 'Please upload a custom template',
- uploadTemplate: 'Click to upload custom template',
- textPlaceholder: 'Describe the image you want to generate',
- uploadImageError: 'Please upload an image',
- replaceImage: 'Replace image',
- textError: 'Please enter a prompt',
- textVideoPlaceholder: "Describe the video you want to generate",
- uploadFirstPlaceholder: 'Click to upload first frame',
- uploadLastPlaceholder: 'Click to upload last frame',
- uploadFirstImageError: 'Please upload the first frame image',
- uploadWaitImageError: 'Please wait for the image upload to finish',
- saveVideo: 'Down Video',
- videoLoadingText: "Video is creating...",
- viewVideo: 'View Video',
- changeFacePrompt: 'Extract the face from the second image and replace the face in the first image',
- rechartTip1: 'When recharging via wallet transfer, please make sure the wallet is on the correct blockchain network!!!',
- rechartTip2: 'Recharge may be delayed. Please wait 3–5 minutes before refreshing to check.',
- walletAddr: 'Wallet Address:',
- fbTitle: 'Warning! This website is for adults only!',
- fbContent: 'By entering, you confirm you are 18+.',
- fbCancel: 'Under 18',
- fbOK: 'I’m 18+',
- sorry: 'Sorry!',
- useLess: 'You cannot use this website...',
- loginAccount: 'Login Account',
- logout: 'Logout',
- userEmailPlaceholder: 'Enter email or username',
- passwordPlaceholder: 'Enter password',
- forgetPassword: 'Forgot password?',
- register: "Register",
- login: "Login",
- forgotPassword: 'Forgot password',
- registerAccount: 'Register Account',
- usernamePlaceholder: 'Enter username',
- codePlaceholder: 'Enter verification code',
- confirmPasswordPlaceholder: 'Confirm password',
- backToLogin: 'Back to Login',
- send: 'Send',
- emailValidPlaceholder: 'Enter a valid email address',
- confirmPwdValidMsg: 'Passwords do not match',
- editPassword: 'Edit Password',
- recharge: 'Recharge',
- myAccount: 'My Account',
- moneyInvite: 'Reward Invite',
- rechargeRecord: 'Recharge Record',
- resumeRecord: 'Consume Record',
- inviteRecord: 'Invite Record',
- username: 'Username',
- userId: 'User ID',
- accountAmount: 'Account Balance',
- contact: 'Contact Us',
- backToUser: 'Back',
- moneyTips: 'When you invite a friend to register, you will earn {rate} of their recharge amount each time they recharge.',
- inviteCode: 'Invite Code',
- inviteLink: 'Invite Link',
- saveImage: 'Save Image',
- totalAmount: 'Total Recharge Amount',
- amount: 'Amount',
- sendAmount: 'Gift Amount',
- rechargeType: 'Recharge Method',
- rechargeTime: 'Recharge Time',
- emptyText: 'No Data Available',
- product: 'Product',
- resumeAmount: 'Amount',
- productType: 'Product Type',
- productTime: 'Creation Time',
- totalReward: 'Total Reward Balance',
- rewardAmount: 'Reward Amount',
- rewardTime: 'Reward Time',
- reSend: 'Resend',
- registerSuccessfully: 'Registration Successful',
- loginSuccessfully: 'Login Successful',
- passwordResetSuccessfully: 'Password Reset Successful',
- rechargeSuccessfully: 'Recharge Successful',
- avatar: 'Avatar',
- email: 'Email',
- input: 'Please enter',
- save: 'Save',
- editEmail: 'Edit Email',
- editEmailSuccessfully: 'Email successfully updated',
- updateAvatarSuccessfully: 'Avatar updated successfully',
- balenceLow: 'Your balance is low, please recharge',
- confirm: 'Confirm',
- cancel: 'Cancel',
- createFailed: 'Creation failed, balance has been refunded',
- notice: 'Notice',
- oldPasswordPlaceholder: 'Enter your old password',
- newpasswordPlaceholder: 'Enter your new password',
- switchPageTip: 'A video is currently being generated. After exiting, please check your balance consumption record.',
- loginless: 'Login information has expired! Please log in again.',
- createVideo: 'Generate Video (Consumes {price} balance)',
- ok: 'Confirm',
- rechartNotice: 'Recharge Instructions',
- rechargeNotice1: '1. Recharge will be credited immediately. If the hash rate doesn’t change, you can refresh and re-enter.',
- rechargeNotice2: '2. Limited-time packages are irregular promotions. You can stock up on hash rate during the event and recharge multiple times.',
- rechargeNotice3: '3. The purchased hash rate has no time limit.',
- rechargeNotice4: 'Before purchasing a package, please carefully review the details. No returns are supported.',
- rechargeLeft: 'Balance',
- dollor: 'USD',
- isDevelop: 'In development, stay tuned!',
- copySuccessfully: 'Copy successful',
- copyLink: 'Copy link',
- goPay: 'Go to Pay',
- filePreview: 'Preview',
- doSame: 'Create Similar',
- saveQRCode: 'Save QR Code',
- invitationCodePlaceholder: 'Please enter the invitation code',
- testRecharge: 'Test Recharge',
- orderNo: "Order Number",
- orderNoP: "Order number cannot be empty",
- emailNotExists: 'Email address is not registered',
- gearNotExists: 'The selected recharge plan does not exist. Please choose another plan.',
- myProduct: 'My Works',
- permissionError: "Your total accumulated recharge is {total}, which does not meet the preview requirement.",
- createTagFailed: "Generation failed. Please refresh and try again.",
- loadingText: 'Loading...',
- hasMore: 'Pull up to load more',
- noMore: 'No more data',
- giftAmount: 'Credited Amount',
- cardNo: 'Card Number',
- cardName: 'Cardholder Name',
- cardNoRequired: 'Please enter card number',
- cardNameRequired: 'Please enter cardholder name',
- rechargeFailed: 'Recharge failed',
- // Model selection
- selectModel: 'Select Model',
- seedance20: 'Seedance 2.0',
- seedance20Fast: 'Seedance 2.0 Fast',
- // Rich text editor
- insertImage: 'Insert Image',
- mentionImage: 'Mention Image',
- noImageToMention: 'No images to mention',
- // VM支付相关
- vmCardInfo: 'Credit Card Information',
- cardNumber: 'Card Number',
- cardNumberPlaceholder: 'Enter card number',
- cardNumberRequired: 'Please enter card number',
- cardNumberInvalid: 'Card number must be 13-19 digits',
- cvc: 'CVC',
- cvcPlaceholder: 'Enter CVC',
- cvcRequired: 'Please enter CVC',
- cvcInvalid: 'CVC must be 3 digits',
- expYear: 'Expiration Year',
- expYearPlaceholder: 'Enter expiration year (e.g., 2027)',
- expYearRequired: 'Please enter expiration year',
- expYearInvalid: 'Year must be 4 digits',
- expMonth: 'Expiration Month',
- expMonthPlaceholder: 'Select expiration month',
- expMonthRequired: 'Please select expiration month',
- emailPlaceholder: 'Enter email address',
- emailRequired: 'Please enter email',
- emailInvalid: 'Invalid email format',
- emailMaxLength: 'Email cannot exceed 30 characters',
- firstName: 'First Name',
- firstNamePlaceholder: 'Enter first name',
- firstNameRequired: 'Please enter first name',
- firstNameMaxLength: 'First name cannot exceed 30 characters',
- lastName: 'Last Name',
- lastNamePlaceholder: 'Enter last name',
- lastNameRequired: 'Please enter last name',
- lastNameMaxLength: 'Last name cannot exceed 30 characters',
- country: 'Country',
- countryPlaceholder: 'Select country',
- countryRequired: 'Please select country',
- videoGen: 'Video Generation',
- uploadFirstImage: 'Upload Reference Image',
- insertImage: 'Insert Image',
- submit: 'Submit',
- cancel: 'Cancel'
-}
\ No newline at end of file
diff --git a/portal-ui/src/lang/en_US/index.js b/portal-ui/src/lang/en_US/index.js
deleted file mode 100644
index 6d91aab..0000000
--- a/portal-ui/src/lang/en_US/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/en_US/route.js b/portal-ui/src/lang/en_US/route.js
deleted file mode 100644
index fa6a78a..0000000
--- a/portal-ui/src/lang/en_US/route.js
+++ /dev/null
@@ -1,16 +0,0 @@
-export default {
- index: 'Home',
- imageToImage: 'Image-to-Image 1',
- imageToImage2: 'Image-to-Image2',
- changeFace: 'Swap Face',
- changeFaceVideo: 'Swap Video Face',
- fastImage: 'Gen Image',
- fastVideo: 'Gen Video',
- videoGen: 'Video Generation',
- recharge: 'Quick Recharge',
- help: 'Help Center',
- moneyInvite: 'Reward Invitation',
- assetGroupManage: 'Asset Group Manage',
- assetManage: 'Asset Manage',
- thirdPartyAsset: 'Third-party assets'
-}
\ No newline at end of file
diff --git a/portal-ui/src/lang/es_ES/common.js b/portal-ui/src/lang/es_ES/common.js
deleted file mode 100644
index 1d0206b..0000000
--- a/portal-ui/src/lang/es_ES/common.js
+++ /dev/null
@@ -1,179 +0,0 @@
-export default {
- image1: 'Desvestir en un clic',
- image2: 'Imagen a Imagen 2',
- uploadImage: 'Subir imagen',
- uploadImageTip: 'Soporta PNG/JPG, máx. 10MB',
- uploadPlaceholder: 'Clic para subir imagen',
- selectImageSource: 'Seleccionar fuente de imagen',
- selectTemplate: 'Seleccionar plantilla',
- reselectTemplate: 'Reseleccionar plantilla',
- noTemplates: 'Sin plantillas',
- tag1: 'Tipo de etiqueta 1',
- tag2: 'Tipo de etiqueta 2',
- tag3: 'Tipo de etiqueta 3',
- generateImage: 'Generar ahora (consume {score} de saldo)',
- generateImageNow: 'Generar ahora',
- generateTip: 'Después de enviar, puede ver en "Mis obras"',
- generateVideo: 'Generar video',
- imageFace: 'Cambiar rostro en imagen',
- videoFace: 'Cambiar rostro en video',
- uploadImageFace: 'Clic para subir imagen de rostro',
- uploadTemplate: 'Clic para subir plantilla personalizada',
- textPlaceholder: 'Describa la imagen que desea generar',
- uploadImageError: 'Por favor suba una imagen',
- replaceImage: 'Reemplazar imagen',
- uploadFaceImageError: 'Por favor suba una imagen de rostro',
- uploadTemplateError: 'Por favor suba una plantilla personalizada',
- textError: 'Por favor escriba el texto de indicación',
- textVideoPlaceholder: 'Describa el video que desea generar',
- uploadFirstPlaceholder: 'Clic para subir imagen del primer frame',
- uploadLastPlaceholder: 'Clic para subir imagen del último frame',
- uploadFirstImageError: 'Por favor suba la imagen del primer frame',
- uploadWaitImageError: 'Espere a que termine la subida',
- saveVideo: 'Descargar video',
- videoLoadingText: 'Generando video...',
- viewVideo: 'Ver video',
- changeFacePrompt: 'Extraer el rostro de la segunda imagen y reemplazar en la primera',
- rechartTip1: 'Al recargar con transferencia de billetera, confirme la red del monedero.',
- rechartTip2: 'La recarga puede tardar; espere 3-5 minutos antes de actualizar.',
- walletAddr: 'Dirección del monedero:',
- fbTitle: 'Advertencia: este sitio es solo para adultos.',
- fbContent: 'Al entrar confirmo que tengo 18 años o más',
- fbCancel: 'Menor de 18',
- fbOK: 'Tengo 18 o más',
- sorry: '¡Lo sentimos!',
- useLess: 'No puede usar este sitio...',
- loginAccount: 'Iniciar sesión',
- logout: 'Cerrar sesión',
- userEmailPlaceholder: 'Introduzca correo o usuario',
- passwordPlaceholder: 'Introduzca contraseña',
- forgetPassword: '¿Olvidó la contraseña?',
- register: 'Registrarse',
- login: 'Iniciar sesión',
- forgotPassword: 'Olvidé la contraseña',
- registerAccount: 'Crear cuenta',
- usernamePlaceholder: 'Introduzca usuario',
- codePlaceholder: 'Introduzca código de verificación',
- confirmPasswordPlaceholder: 'Confirme la contraseña',
- backToLogin: 'Volver al inicio de sesión',
- send: 'Enviar',
- emailValidPlaceholder: 'Introduzca un correo válido',
- confirmPwdValidMsg: 'Las contraseñas no coinciden',
- editPassword: 'Cambiar contraseña',
- recharge: 'Recargar',
- myAccount: 'Mi cuenta',
- moneyInvite: 'Invitación con recompensa',
- rechargeRecord: 'Historial de recargas',
- resumeRecord: 'Historial de consumo',
- inviteRecord: 'Historial de invitaciones',
- username: 'Usuario',
- userId: 'ID de usuario',
- accountAmount: 'Saldo',
- editUserInfo: 'Editar datos',
- contact: 'Contacto',
- backToUser: 'Volver',
- moneyTips: 'Al invitar a un amigo a registrarse, obtiene {rate} de su recarga cada vez.',
- inviteCode: 'Código de invitación',
- inviteLink: 'Enlace de invitación',
- saveImage: 'Guardar imagen',
- totalAmount: 'Total recargado',
- amount: 'Monto',
- sendAmount: 'Monto de regalo',
- rechargeType: 'Método de recarga',
- rechargeTime: 'Fecha de recarga',
- emptyText: 'Sin datos',
- product: 'Obra',
- resumeAmount: 'Monto consumido',
- productType: 'Tipo de obra',
- productTime: 'Fecha de creación',
- totalReward: 'Saldo de recompensas',
- rewardAmount: 'Monto de recompensa',
- rewardTime: 'Fecha de recompensa',
- reSend: 'Reenviar',
- registerSuccessfully: 'Registro exitoso',
- loginSuccessfully: 'Sesión iniciada',
- passwordResetSuccessfully: 'Contraseña restablecida',
- rechargeSuccessfully: 'Recarga exitosa',
- avatar: 'Avatar',
- input: 'Introduzca',
- save: 'Guardar',
- editEmail: 'Cambiar correo',
- editEmailSuccessfully: 'Correo actualizado',
- updateAvatarSuccessfully: 'Avatar actualizado',
- balenceLow: 'Saldo insuficiente, recargue',
- confirm: 'Aceptar',
- createFailed: 'Error al generar, saldo devuelto',
- notice: 'Aviso',
- oldPasswordPlaceholder: 'Introduzca la contraseña anterior',
- newpasswordPlaceholder: 'Introduzca la nueva contraseña',
- switchPageTip: 'El video se está generando; salga y revise el historial de consumo.',
- loginless: 'Sesión expirada; inicie sesión de nuevo.',
- createVideo: 'Generar video (consume {price} de saldo)',
- ok: 'Aceptar',
- rechartNotice: 'Instrucciones de recarga',
- rechargeNotice1: '1. La recarga se acredita al instante. Si no cambia, actualice la página.',
- rechargeNotice2: '2. Los paquetes por tiempo limitado son promociones; puede recargar varias veces.',
- rechargeNotice3: '3. El saldo recargado no tiene límite de tiempo.',
- rechargeNotice4: 'Revise el paquete antes de comprar; no hay devoluciones.',
- rechargeLeft: 'Saldo',
- dollor: 'USD',
- isDevelop: 'En desarrollo.',
- copySuccessfully: 'Copiado',
- copyLink: 'Copiar enlace',
- goPay: 'Ir a pagar',
- filePreview: 'Vista previa',
- doSame: 'Hacer similar',
- saveQRCode: 'Guardar código QR',
- invitationCodePlaceholder: 'Introduzca código de invitación',
- testRecharge: 'Recarga de prueba',
- orderNo: 'Número de pedido',
- orderNoP: 'El número de pedido es obligatorio',
- emailNotExists: 'El correo no está registrado',
- gearNotExists: 'El plan de recarga no existe; elija otro.',
- myProduct: 'Mis obras',
- permissionError: 'Su recarga acumulada es {total}, no cumple para previsualizar.',
- createTagFailed: 'Error al generar; actualice e intente de nuevo.',
- loadingText: 'Cargando...',
- hasMore: 'Deslizar para más',
- noMore: 'No hay más',
- giftAmount: 'Monto acreditado',
- cardNo: 'Número de tarjeta',
- cardName: 'Nombre en tarjeta',
- cardNoRequired: 'Introduzca número de tarjeta',
- cardNameRequired: 'Introduzca nombre en tarjeta',
- rechargeFailed: 'Recarga fallida',
- vmCardInfo: 'Datos de tarjeta',
- cardNumber: 'Número de tarjeta',
- cardNumberPlaceholder: 'Introduzca número de tarjeta',
- cardNumberRequired: 'Introduzca número de tarjeta',
- cardNumberInvalid: 'El número debe tener 13-19 dígitos',
- cvc: 'CVC',
- cvcPlaceholder: 'Introduzca CVC',
- cvcRequired: 'Introduzca CVC',
- cvcInvalid: 'CVC debe ser 3 dígitos',
- expYear: 'Año de vencimiento',
- expYearPlaceholder: 'Introduzca año (ej.: 2027)',
- expYearRequired: 'Introduzca año de vencimiento',
- expYearInvalid: 'El año debe ser 4 dígitos',
- expMonth: 'Mes de vencimiento',
- expMonthPlaceholder: 'Seleccione mes',
- expMonthRequired: 'Seleccione mes',
- email: 'Correo',
- emailPlaceholder: 'Introduzca correo',
- emailRequired: 'Introduzca correo',
- emailInvalid: 'Formato de correo no válido',
- emailMaxLength: 'Máx. 30 caracteres',
- firstName: 'Nombre',
- firstNamePlaceholder: 'Introduzca nombre',
- firstNameRequired: 'Introduzca nombre',
- firstNameMaxLength: 'Máx. 30 caracteres',
- lastName: 'Apellido',
- lastNamePlaceholder: 'Introduzca apellido',
- lastNameRequired: 'Introduzca apellido',
- lastNameMaxLength: 'Máx. 30 caracteres',
- country: 'País',
- countryPlaceholder: 'Seleccione país',
- countryRequired: 'Seleccione país',
- submit: 'Enviar',
- cancel: 'Cancelar'
-}
diff --git a/portal-ui/src/lang/es_ES/index.js b/portal-ui/src/lang/es_ES/index.js
deleted file mode 100644
index 1136137..0000000
--- a/portal-ui/src/lang/es_ES/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/es_ES/route.js b/portal-ui/src/lang/es_ES/route.js
deleted file mode 100644
index 9000ef8..0000000
--- a/portal-ui/src/lang/es_ES/route.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- index: 'Inicio',
- imageToImage: 'Desvestir en un clic',
- imageToImage2: 'Imagen a Imagen 2',
- changeFace: 'Cambiar rostro',
- changeFaceVideo: 'Cambiar rostro en video',
- fastImage: 'Generar imagen',
- fastVideo: 'Generar video',
- recharge: 'Recarga rápida',
- help: 'Centro de ayuda',
- moneyInvite: 'Invitación con recompensa',
- assetGroupManage: 'Gestión de grupos de activos',
- assetManage: 'Gestión de activos',
- thirdPartyAsset: 'Activos de terceros'
-}
diff --git a/portal-ui/src/lang/fr_FR/common.js b/portal-ui/src/lang/fr_FR/common.js
deleted file mode 100644
index 2294be1..0000000
--- a/portal-ui/src/lang/fr_FR/common.js
+++ /dev/null
@@ -1,179 +0,0 @@
-export default {
- image1: 'Déshabiller en un clic',
- image2: 'Image vers Image 2',
- uploadImage: 'Télécharger une image',
- uploadImageTip: 'PNG/JPG, max. 10 Mo',
- uploadPlaceholder: 'Cliquez pour télécharger',
- selectImageSource: 'Choisir la source de l\'image',
- selectTemplate: 'Choisir un modèle',
- reselectTemplate: 'Resélectionner un modèle',
- noTemplates: 'Aucun modèle',
- tag1: 'Type d\'étiquette 1',
- tag2: 'Type d\'étiquette 2',
- tag3: 'Type d\'étiquette 3',
- generateImage: 'Générer maintenant (coûte {score} de solde)',
- generateImageNow: 'Générer maintenant',
- generateTip: 'Après envoi, voir dans « Mes œuvres »',
- generateVideo: 'Générer une vidéo',
- imageFace: 'Changer le visage sur image',
- videoFace: 'Changer le visage en vidéo',
- uploadImageFace: 'Cliquez pour télécharger une photo de visage',
- uploadTemplate: 'Cliquez pour télécharger un modèle personnalisé',
- textPlaceholder: 'Décrivez l\'image que vous voulez générer',
- uploadImageError: 'Veuillez télécharger une image',
- replaceImage: 'Remplacer l\'image',
- uploadFaceImageError: 'Veuillez télécharger une photo de visage',
- uploadTemplateError: 'Veuillez télécharger un modèle personnalisé',
- textError: 'Veuillez saisir le texte d\'invite',
- textVideoPlaceholder: 'Décrivez la vidéo que vous voulez générer',
- uploadFirstPlaceholder: 'Cliquez pour télécharger la première image',
- uploadLastPlaceholder: 'Cliquez pour télécharger la dernière image',
- uploadFirstImageError: 'Veuillez télécharger l\'image du premier plan',
- uploadWaitImageError: 'Veuillez attendre la fin du téléchargement',
- saveVideo: 'Télécharger la vidéo',
- videoLoadingText: 'Génération de la vidéo...',
- viewVideo: 'Voir la vidéo',
- changeFacePrompt: 'Extraire le visage de la 2e image et remplacer celui de la 1re',
- rechartTip1: 'Lors d\'une recharge par portefeuille, vérifiez le réseau du portefeuille.',
- rechartTip2: 'La recharge peut être retardée ; attendez 3–5 min avant d’actualiser.',
- walletAddr: 'Adresse du portefeuille : ',
- fbTitle: 'Attention ! Ce site est réservé aux adultes.',
- fbContent: 'En entrant je confirme avoir 18 ans ou plus',
- fbCancel: 'Moins de 18 ans',
- fbOK: 'J\'ai 18 ans ou plus',
- sorry: 'Désolé !',
- useLess: 'Vous ne pouvez pas utiliser ce site...',
- loginAccount: 'Connexion',
- logout: 'Déconnexion',
- userEmailPlaceholder: 'Saisissez l\'email ou l’identifiant',
- passwordPlaceholder: 'Saisissez le mot de passe',
- forgetPassword: 'Mot de passe oublié ?',
- register: 'S\'inscrire',
- login: 'Connexion',
- forgotPassword: 'Mot de passe oublié',
- registerAccount: 'Créer un compte',
- usernamePlaceholder: 'Saisissez l’identifiant',
- codePlaceholder: 'Saisissez le code de vérification',
- confirmPasswordPlaceholder: 'Confirmez le mot de passe',
- backToLogin: 'Retour à la connexion',
- send: 'Envoyer',
- emailValidPlaceholder: 'Saisissez un email valide',
- confirmPwdValidMsg: 'Les mots de passe ne correspondent pas',
- editPassword: 'Modifier le mot de passe',
- recharge: 'Recharger',
- myAccount: 'Mon compte',
- moneyInvite: 'Invitation avec récompense',
- rechargeRecord: 'Historique des recharges',
- resumeRecord: 'Historique des consommations',
- inviteRecord: 'Historique des invitations',
- username: 'Identifiant',
- userId: 'ID utilisateur',
- accountAmount: 'Solde',
- editUserInfo: 'Modifier les informations',
- contact: 'Nous contacter',
- backToUser: 'Retour',
- moneyTips: 'Quand vous parrainez un ami, vous gagnez {rate} de chaque recharge qu’il fait.',
- inviteCode: 'Code de parrainage',
- inviteLink: 'Lien d\'invitation',
- saveImage: 'Enregistrer l\'image',
- totalAmount: 'Total rechargé',
- amount: 'Montant',
- sendAmount: 'Montant offert',
- rechargeType: 'Méthode de recharge',
- rechargeTime: 'Date de recharge',
- emptyText: 'Aucune donnée',
- product: 'Œuvre',
- resumeAmount: 'Montant consommé',
- productType: 'Type d\'œuvre',
- productTime: 'Date de création',
- totalReward: 'Solde de récompenses',
- rewardAmount: 'Montant de la récompense',
- rewardTime: 'Date de la récompense',
- reSend: 'Renvoyer',
- registerSuccessfully: 'Inscription réussie',
- loginSuccessfully: 'Connexion réussie',
- passwordResetSuccessfully: 'Mot de passe réinitialisé',
- rechargeSuccessfully: 'Recharge réussie',
- avatar: 'Avatar',
- input: 'Saisir',
- save: 'Enregistrer',
- editEmail: 'Modifier l\'email',
- editEmailSuccessfully: 'Email mis à jour',
- updateAvatarSuccessfully: 'Avatar mis à jour',
- balenceLow: 'Solde insuffisant, veuillez recharger',
- confirm: 'Confirmer',
- createFailed: 'Échec de génération, solde remboursé',
- notice: 'Avis',
- oldPasswordPlaceholder: 'Saisissez l’ancien mot de passe',
- newpasswordPlaceholder: 'Saisissez le nouveau mot de passe',
- switchPageTip: 'Une vidéo est en cours de génération ; consultez l’historique des consommations.',
- loginless: 'Session expirée ! Veuillez vous reconnecter.',
- createVideo: 'Générer une vidéo (coûte {price} de solde)',
- ok: 'Confirmer',
- rechartNotice: 'Instructions de recharge',
- rechargeNotice1: '1. La recharge est créditée tout de suite. Si rien ne change, actualisez la page.',
- rechargeNotice2: '2. Les offres limitées sont des promos ; vous pouvez recharger plusieurs fois.',
- rechargeNotice3: '3. Le solde rechargé n’a pas de limite de durée.',
- rechargeNotice4: 'Vérifiez l’offre avant d’acheter ; pas de remboursement.',
- rechargeLeft: 'Solde',
- dollor: 'USD',
- isDevelop: 'En cours de développement.',
- copySuccessfully: 'Copié',
- copyLink: 'Copier le lien',
- goPay: 'Aller au paiement',
- filePreview: 'Aperçu',
- doSame: 'Créer un équivalent',
- saveQRCode: 'Enregistrer le QR code',
- invitationCodePlaceholder: 'Saisissez le code d\'invitation',
- testRecharge: 'Recharge test',
- orderNo: 'Numéro de commande',
- orderNoP: 'Le numéro de commande est obligatoire',
- emailNotExists: 'Cet email n’est pas inscrit',
- gearNotExists: 'L’offre choisie n’existe pas ; choisissez une autre.',
- myProduct: 'Mes œuvres',
- permissionError: 'Votre total de recharges est {total}, insuffisant pour la prévisualisation.',
- createTagFailed: 'Échec de génération ; actualisez et réessayez.',
- loadingText: 'Chargement...',
- hasMore: 'Tirez pour charger plus',
- noMore: 'Plus rien',
- giftAmount: 'Montant crédité',
- cardNo: 'Numéro de carte',
- cardName: 'Nom sur la carte',
- cardNoRequired: 'Saisissez le numéro de carte',
- cardNameRequired: 'Saisissez le nom sur la carte',
- rechargeFailed: 'Recharge échouée',
- vmCardInfo: 'Informations de carte',
- cardNumber: 'Numéro de carte',
- cardNumberPlaceholder: 'Saisissez le numéro de carte',
- cardNumberRequired: 'Saisissez le numéro de carte',
- cardNumberInvalid: 'Le numéro doit contenir 13 à 19 chiffres',
- cvc: 'CVC',
- cvcPlaceholder: 'Saisissez le CVC',
- cvcRequired: 'Saisissez le CVC',
- cvcInvalid: 'Le CVC doit faire 3 chiffres',
- expYear: 'Année d\'expiration',
- expYearPlaceholder: 'Saisissez l’année (ex. 2027)',
- expYearRequired: 'Saisissez l’année d\'expiration',
- expYearInvalid: 'L’année doit faire 4 chiffres',
- expMonth: 'Mois d\'expiration',
- expMonthPlaceholder: 'Choisissez le mois',
- expMonthRequired: 'Choisissez le mois',
- email: 'Email',
- emailPlaceholder: 'Saisissez l’email',
- emailRequired: 'Saisissez l’email',
- emailInvalid: 'Format d’email invalide',
- emailMaxLength: 'L’email ne doit pas dépasser 30 caractères',
- firstName: 'Prénom',
- firstNamePlaceholder: 'Saisissez le prénom',
- firstNameRequired: 'Saisissez le prénom',
- firstNameMaxLength: 'Le prénom ne doit pas dépasser 30 caractères',
- lastName: 'Nom de famille',
- lastNamePlaceholder: 'Saisissez le nom de famille',
- lastNameRequired: 'Saisissez le nom de famille',
- lastNameMaxLength: 'Le nom ne doit pas dépasser 30 caractères',
- country: 'Pays',
- countryPlaceholder: 'Choisissez le pays',
- countryRequired: 'Choisissez le pays',
- submit: 'Envoyer',
- cancel: 'Annuler'
-}
diff --git a/portal-ui/src/lang/fr_FR/index.js b/portal-ui/src/lang/fr_FR/index.js
deleted file mode 100644
index 1136137..0000000
--- a/portal-ui/src/lang/fr_FR/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/fr_FR/route.js b/portal-ui/src/lang/fr_FR/route.js
deleted file mode 100644
index 884af36..0000000
--- a/portal-ui/src/lang/fr_FR/route.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- index: 'Accueil',
- imageToImage: 'Déshabiller en un clic',
- imageToImage2: 'Image vers Image 2',
- changeFace: 'Changer le visage',
- changeFaceVideo: 'Changer le visage en vidéo',
- fastImage: 'Générer une image',
- fastVideo: 'Générer une vidéo',
- recharge: 'Recharge rapide',
- help: 'Centre d\'aide',
- moneyInvite: 'Invitation avec récompense',
- assetGroupManage: 'Gestion des groupes d\'actifs',
- assetManage: 'Gestion des actifs',
- thirdPartyAsset: 'Actifs tiers'
-}
diff --git a/portal-ui/src/lang/hi_IN/common.js b/portal-ui/src/lang/hi_IN/common.js
deleted file mode 100644
index 809f8c2..0000000
--- a/portal-ui/src/lang/hi_IN/common.js
+++ /dev/null
@@ -1,179 +0,0 @@
-export default {
- image1: 'एक क्लिक में कपड़े उतारें',
- image2: 'इमेज टू इमेज 2',
- uploadImage: 'छवि अपलोड करें',
- uploadImageTip: 'PNG/JPG, अधिकतम 10MB',
- uploadPlaceholder: 'अपलोड करने के लिए क्लिक करें',
- selectImageSource: 'छवि स्रोत चुनें',
- selectTemplate: 'टेम्पलेट चुनें',
- reselectTemplate: 'टेम्पलेट दोबारा चुनें',
- noTemplates: 'कोई टेम्पलेट नहीं',
- tag1: 'टैग प्रकार 1',
- tag2: 'टैग प्रकार 2',
- tag3: 'टैग प्रकार 3',
- generateImage: 'अभी जनरेट करें ({score} बैलेंस खर्च)',
- generateImageNow: 'अभी जनरेट करें',
- generateTip: 'सबमिट के बाद "मेरी रचनाएं" में देखें',
- generateVideo: 'वीडियो जनरेट करें',
- imageFace: 'छवि में चेहरा बदलें',
- videoFace: 'वीडियो में चेहरा बदलें',
- uploadImageFace: 'चेहरे की छवि अपलोड करने के लिए क्लिक करें',
- uploadTemplate: 'कस्टम टेम्पलेट अपलोड करने के लिए क्लिक करें',
- textPlaceholder: 'वह छवि बताएं जो आप बनाना चाहते हैं',
- uploadImageError: 'कृपया एक छवि अपलोड करें',
- replaceImage: 'छवि बदलें',
- uploadFaceImageError: 'कृपया चेहरे की छवि अपलोड करें',
- uploadTemplateError: 'कृपया कस्टम टेम्पलेट अपलोड करें',
- textError: 'कृपया प्रॉम्प्ट दर्ज करें',
- textVideoPlaceholder: 'वह वीडियो बताएं जो आप बनाना चाहते हैं',
- uploadFirstPlaceholder: 'पहला फ्रेम अपलोड करने के लिए क्लिक करें',
- uploadLastPlaceholder: 'आखिरी फ्रेम अपलोड करने के लिए क्लिक करें',
- uploadFirstImageError: 'कृपया पहले फ्रेम की छवि अपलोड करें',
- uploadWaitImageError: 'अपलोड पूरा होने तक प्रतीक्षा करें',
- saveVideo: 'वीडियो डाउनलोड करें',
- videoLoadingText: 'वीडियो बन रहा है...',
- viewVideo: 'वीडियो देखें',
- changeFacePrompt: 'दूसरी छवि का चेहरा लेकर पहली छवि के चेहरे से बदलें',
- rechartTip1: 'वॉलेट ट्रांसफर से रिचार्ज करते समय वॉलेट का नेटवर्क जांचें।',
- rechartTip2: 'रिचार्ज में देरी हो सकती है; 3-5 मिनट बाद रिफ्रेश करें।',
- walletAddr: 'वॉलेट पता:',
- fbTitle: 'चेतावनी! यह साइट केवल वयस्कों के लिए है।',
- fbContent: 'प्रवेश करके मैं पुष्टि करता/करती हूं कि मैं 18 वर्ष या उससे अधिक का हूं',
- fbCancel: '18 से कम',
- fbOK: 'मैं 18+ हूं',
- sorry: 'क्षमा करें!',
- useLess: 'आप इस साइट का उपयोग नहीं कर सकते...',
- loginAccount: 'लॉगिन',
- logout: 'लॉगआउट',
- userEmailPlaceholder: 'ईमेल या यूजरनेम दर्ज करें',
- passwordPlaceholder: 'पासवर्ड दर्ज करें',
- forgetPassword: 'पासवर्ड भूल गए?',
- register: 'रजिस्टर',
- login: 'लॉगिन',
- forgotPassword: 'पासवर्ड भूल गए',
- registerAccount: 'अकाउंट बनाएं',
- usernamePlaceholder: 'यूजरनेम दर्ज करें',
- codePlaceholder: 'वेरिफिकेशन कोड दर्ज करें',
- confirmPasswordPlaceholder: 'पासवर्ड की पुष्टि करें',
- backToLogin: 'लॉगिन पर वापस',
- send: 'भेजें',
- emailValidPlaceholder: 'वैध ईमेल दर्ज करें',
- confirmPwdValidMsg: 'पासवर्ड मेल नहीं खाते',
- editPassword: 'पासवर्ड बदलें',
- recharge: 'रिचार्ज',
- myAccount: 'मेरा अकाउंट',
- moneyInvite: 'इनाम निमंत्रण',
- rechargeRecord: 'रिचार्ज रिकॉर्ड',
- resumeRecord: 'खर्च रिकॉर्ड',
- inviteRecord: 'निमंत्रण रिकॉर्ड',
- username: 'यूजरनेम',
- userId: 'यूजर आईडी',
- accountAmount: 'बैलेंस',
- editUserInfo: 'जानकारी संपादित करें',
- contact: 'संपर्क करें',
- backToUser: 'वापस',
- moneyTips: 'जब आप दोस्त को रजिस्टर करवाते हैं, उसके रिचार्ज का {rate} हर बार मिलता है।',
- inviteCode: 'इनवाइट कोड',
- inviteLink: 'इनवाइट लिंक',
- saveImage: 'छवि सहेजें',
- totalAmount: 'कुल रिचार्ज',
- amount: 'राशि',
- sendAmount: 'उपहार राशि',
- rechargeType: 'रिचार्ज तरीका',
- rechargeTime: 'रिचार्ज समय',
- emptyText: 'कोई डेटा नहीं',
- product: 'रचना',
- resumeAmount: 'खर्च राशि',
- productType: 'रचना प्रकार',
- productTime: 'बनाने का समय',
- totalReward: 'कुल इनाम बैलेंस',
- rewardAmount: 'इनाम राशि',
- rewardTime: 'इनाम समय',
- reSend: 'दोबारा भेजें',
- registerSuccessfully: 'रजिस्ट्रेशन सफल',
- loginSuccessfully: 'लॉगिन सफल',
- passwordResetSuccessfully: 'पासवर्ड रीसेट सफल',
- rechargeSuccessfully: 'रिचार्ज सफल',
- avatar: 'अवतार',
- input: 'दर्ज करें',
- save: 'सहेजें',
- editEmail: 'ईमेल बदलें',
- editEmailSuccessfully: 'ईमेल अपडेट हो गया',
- updateAvatarSuccessfully: 'अवतार अपडेट हो गया',
- balenceLow: 'बैलेंस कम है, रिचार्ज करें',
- confirm: 'पुष्टि करें',
- createFailed: 'जनरेशन विफल, बैलेंस वापस',
- notice: 'सूचना',
- oldPasswordPlaceholder: 'पुराना पासवर्ड दर्ज करें',
- newpasswordPlaceholder: 'नया पासवर्ड दर्ज करें',
- switchPageTip: 'वीडियो बन रहा है; निकलकर खर्च रिकॉर्ड देखें।',
- loginless: 'लॉगिन समाप्त! दोबारा लॉगिन करें।',
- createVideo: 'वीडियो जनरेट करें ({price} बैलेंस खर्च)',
- ok: 'पुष्टि करें',
- rechartNotice: 'रिचार्ज निर्देश',
- rechargeNotice1: '1. रिचार्ज तुरंत जमा होता है। बदलाव न दिखे तो रिफ्रेश करें।',
- rechargeNotice2: '2. लिमिटेड पैक प्रचार हैं; आप कई बार रिचार्ज कर सकते हैं।',
- rechargeNotice3: '3. रिचार्ज की गई राशि की कोई समय सीमा नहीं।',
- rechargeNotice4: 'खरीदने से पहले पैक देखें; वापसी नहीं होती।',
- rechargeLeft: 'बैलेंस',
- dollor: 'USD',
- isDevelop: 'विकास में है।',
- copySuccessfully: 'कॉपी हुआ',
- copyLink: 'लिंक कॉपी करें',
- goPay: 'भुगतान पर जाएं',
- filePreview: 'पूर्वावलोकन',
- doSame: 'इसी तरह बनाएं',
- saveQRCode: 'QR कोड सहेजें',
- invitationCodePlaceholder: 'इनवाइट कोड दर्ज करें',
- testRecharge: 'टेस्ट रिचार्ज',
- orderNo: 'ऑर्डर नंबर',
- orderNoP: 'ऑर्डर नंबर खाली नहीं हो सकता',
- emailNotExists: 'यह ईमेल रजिस्टर नहीं है',
- gearNotExists: 'चुना गया रिचार्ज प्लान मौजूद नहीं; दूसरा चुनें।',
- myProduct: 'मेरी रचनाएं',
- permissionError: 'आपका कुल रिचार्ज {total} है, प्रीव्यू के लिए पर्याप्त नहीं।',
- createTagFailed: 'जनरेशन विफल; रिफ्रेश करके दोबारा कोशिश करें।',
- loadingText: 'लोड हो रहा है...',
- hasMore: 'ऊपर खींचें और अधिक लोड करें',
- noMore: 'और नहीं',
- giftAmount: 'जमा राशि',
- cardNo: 'कार्ड नंबर',
- cardName: 'कार्डधारक का नाम',
- cardNoRequired: 'कार्ड नंबर दर्ज करें',
- cardNameRequired: 'कार्डधारक का नाम दर्ज करें',
- rechargeFailed: 'रिचार्ज विफल',
- vmCardInfo: 'कार्ड जानकारी',
- cardNumber: 'कार्ड नंबर',
- cardNumberPlaceholder: 'कार्ड नंबर दर्ज करें',
- cardNumberRequired: 'कार्ड नंबर दर्ज करें',
- cardNumberInvalid: 'कार्ड नंबर 13-19 अंकों का होना चाहिए',
- cvc: 'CVC',
- cvcPlaceholder: 'CVC दर्ज करें',
- cvcRequired: 'CVC दर्ज करें',
- cvcInvalid: 'CVC 3 अंकों का होना चाहिए',
- expYear: 'समाप्ति वर्ष',
- expYearPlaceholder: 'वर्ष दर्ज करें (जैसे 2027)',
- expYearRequired: 'समाप्ति वर्ष दर्ज करें',
- expYearInvalid: 'वर्ष 4 अंकों का होना चाहिए',
- expMonth: 'समाप्ति माह',
- expMonthPlaceholder: 'माह चुनें',
- expMonthRequired: 'माह चुनें',
- email: 'ईमेल',
- emailPlaceholder: 'ईमेल दर्ज करें',
- emailRequired: 'ईमेल दर्ज करें',
- emailInvalid: 'ईमेल फॉर्मेट गलत',
- emailMaxLength: 'ईमेल 30 अक्षर से अधिक नहीं',
- firstName: 'पहला नाम',
- firstNamePlaceholder: 'पहला नाम दर्ज करें',
- firstNameRequired: 'पहला नाम दर्ज करें',
- firstNameMaxLength: 'पहला नाम 30 अक्षर से अधिक नहीं',
- lastName: 'उपनाम',
- lastNamePlaceholder: 'उपनाम दर्ज करें',
- lastNameRequired: 'उपनाम दर्ज करें',
- lastNameMaxLength: 'उपनाम 30 अक्षर से अधिक नहीं',
- country: 'देश',
- countryPlaceholder: 'देश चुनें',
- countryRequired: 'देश चुनें',
- submit: 'भेजें',
- cancel: 'रद्द करें'
-}
diff --git a/portal-ui/src/lang/hi_IN/index.js b/portal-ui/src/lang/hi_IN/index.js
deleted file mode 100644
index 1136137..0000000
--- a/portal-ui/src/lang/hi_IN/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/hi_IN/route.js b/portal-ui/src/lang/hi_IN/route.js
deleted file mode 100644
index 81138ec..0000000
--- a/portal-ui/src/lang/hi_IN/route.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- index: 'होम',
- imageToImage: 'एक क्लिक में कपड़े उतारें',
- imageToImage2: 'इमेज टू इमेज 2',
- changeFace: 'चेहरा बदलें',
- changeFaceVideo: 'वीडियो में चेहरा बदलें',
- fastImage: 'छवि जनरेट करें',
- fastVideo: 'वीडियो जनरेट करें',
- recharge: 'त्वरित रिचार्ज',
- help: 'सहायता केंद्र',
- moneyInvite: 'इनाम निमंत्रण',
- assetGroupManage: 'एसेट समूह प्रबंधन',
- assetManage: 'एसेट प्रबंधन',
- thirdPartyAsset: 'तीसरे पक्ष की सामग्री'
-}
diff --git a/portal-ui/src/lang/i18n.js b/portal-ui/src/lang/i18n.js
index 6062337..136d89b 100644
--- a/portal-ui/src/lang/i18n.js
+++ b/portal-ui/src/lang/i18n.js
@@ -1,41 +1,19 @@
import { createI18n } from 'vue-i18n'
-import Cookies from 'js-cookie'
import zh_HK from '@/lang/zh_HK/index.js'
-import en_US from '@/lang/en_US/index.js'
-import es_ES from '@/lang/es_ES/index.js'
-import pt_BR from '@/lang/pt_BR/index.js'
-import hi_IN from '@/lang/hi_IN/index.js'
-import ru_RU from '@/lang/ru_RU/index.js'
-import ar_SA from '@/lang/ar_SA/index.js'
-import fr_FR from '@/lang/fr_FR/index.js'
// 多语言切换已禁用:全站固定繁体中文
let locale = 'zh_HK'
/** 各语言在界面上的显示名称 */
export const LOCALE_NAMES = {
- zh_HK: '繁体中文',
- en_US: 'English',
- es_ES: 'Español',
- pt_BR: 'Português',
- hi_IN: 'हिन्दी',
- ru_RU: 'Русский',
- ar_SA: 'العربية',
- fr_FR: 'Français'
+ zh_HK: '繁体中文'
}
const i18n = createI18n({
globalInjection: true,
locale,
messages: {
- zh_HK,
- en_US,
- es_ES,
- pt_BR,
- hi_IN,
- ru_RU,
- ar_SA,
- fr_FR
+ zh_HK
}
})
diff --git a/portal-ui/src/lang/index.js b/portal-ui/src/lang/index.js
index e2712c4..9da669a 100644
--- a/portal-ui/src/lang/index.js
+++ b/portal-ui/src/lang/index.js
@@ -1,7 +1,5 @@
-import en_USLocale from './en/index'
import zh_HKLocale from './zh_HK/index'
export default {
- en_US: en_USLocale,
zh_HK: zh_HKLocale
}
diff --git a/portal-ui/src/lang/pt_BR/common.js b/portal-ui/src/lang/pt_BR/common.js
deleted file mode 100644
index 52b8997..0000000
--- a/portal-ui/src/lang/pt_BR/common.js
+++ /dev/null
@@ -1,179 +0,0 @@
-export default {
- image1: 'Despir em um clique',
- image2: 'Imagem para Imagem 2',
- uploadImage: 'Enviar imagem',
- uploadImageTip: 'PNG/JPG, máx. 10MB',
- uploadPlaceholder: 'Clique para enviar imagem',
- selectImageSource: 'Selecionar origem da imagem',
- selectTemplate: 'Selecionar modelo',
- reselectTemplate: 'Selecionar outro modelo',
- noTemplates: 'Sem modelos',
- tag1: 'Tipo de tag 1',
- tag2: 'Tipo de tag 2',
- tag3: 'Tipo de tag 3',
- generateImage: 'Gerar agora (usa {score} de saldo)',
- generateImageNow: 'Gerar agora',
- generateTip: 'Após enviar, veja em "Minhas obras"',
- generateVideo: 'Gerar vídeo',
- imageFace: 'Trocar rosto em imagem',
- videoFace: 'Trocar rosto em vídeo',
- uploadImageFace: 'Clique para enviar imagem do rosto',
- uploadTemplate: 'Clique para enviar modelo personalizado',
- textPlaceholder: 'Descreva a imagem que deseja gerar',
- uploadImageError: 'Envie uma imagem',
- replaceImage: 'Substituir imagem',
- uploadFaceImageError: 'Envie uma imagem do rosto',
- uploadTemplateError: 'Envie um modelo personalizado',
- textError: 'Digite o texto de indicação',
- textVideoPlaceholder: 'Descreva o vídeo que deseja gerar',
- uploadFirstPlaceholder: 'Clique para enviar primeiro frame',
- uploadLastPlaceholder: 'Clique para enviar último frame',
- uploadFirstImageError: 'Envie a imagem do primeiro frame',
- uploadWaitImageError: 'Aguarde o envio terminar',
- saveVideo: 'Baixar vídeo',
- videoLoadingText: 'Gerando vídeo...',
- viewVideo: 'Ver vídeo',
- changeFacePrompt: 'Extrair o rosto da segunda imagem e substituir na primeira',
- rechartTip1: 'Ao recarregar por carteira, confirme a rede do carteira.',
- rechartTip2: 'A recarga pode atrasar; aguarde 3-5 minutos antes de atualizar.',
- walletAddr: 'Endereço da carteira:',
- fbTitle: 'Aviso: este site é apenas para maiores de 18 anos.',
- fbContent: 'Ao entrar confirmo que tenho 18 anos ou mais',
- fbCancel: 'Menor de 18',
- fbOK: 'Tenho 18 ou mais',
- sorry: 'Desculpe!',
- useLess: 'Você não pode usar este site...',
- loginAccount: 'Entrar',
- logout: 'Sair',
- userEmailPlaceholder: 'Digite e-mail ou usuário',
- passwordPlaceholder: 'Digite a senha',
- forgetPassword: 'Esqueceu a senha?',
- register: 'Cadastrar',
- login: 'Entrar',
- forgotPassword: 'Esqueci a senha',
- registerAccount: 'Criar conta',
- usernamePlaceholder: 'Digite o usuário',
- codePlaceholder: 'Digite o código de verificação',
- confirmPasswordPlaceholder: 'Confirme a senha',
- backToLogin: 'Voltar ao login',
- send: 'Enviar',
- emailValidPlaceholder: 'Digite um e-mail válido',
- confirmPwdValidMsg: 'As senhas não coincidem',
- editPassword: 'Alterar senha',
- recharge: 'Recarregar',
- myAccount: 'Minha conta',
- moneyInvite: 'Convite com recompensa',
- rechargeRecord: 'Histórico de recargas',
- resumeRecord: 'Histórico de consumo',
- inviteRecord: 'Histórico de convites',
- username: 'Usuário',
- userId: 'ID do usuário',
- accountAmount: 'Saldo',
- editUserInfo: 'Editar dados',
- contact: 'Contato',
- backToUser: 'Voltar',
- moneyTips: 'Ao convidar um amigo, você ganha {rate} do valor que ele recarregar.',
- inviteCode: 'Código de convite',
- inviteLink: 'Link de convite',
- saveImage: 'Salvar imagem',
- totalAmount: 'Total recarregado',
- amount: 'Valor',
- sendAmount: 'Valor de brinde',
- rechargeType: 'Forma de recarga',
- rechargeTime: 'Data da recarga',
- emptyText: 'Sem dados',
- product: 'Obra',
- resumeAmount: 'Valor consumido',
- productType: 'Tipo de obra',
- productTime: 'Data de criação',
- totalReward: 'Saldo de recompensas',
- rewardAmount: 'Valor da recompensa',
- rewardTime: 'Data da recompensa',
- reSend: 'Reenviar',
- registerSuccessfully: 'Cadastro concluído',
- loginSuccessfully: 'Login realizado',
- passwordResetSuccessfully: 'Senha redefinida',
- rechargeSuccessfully: 'Recarga concluída',
- avatar: 'Avatar',
- input: 'Digite',
- save: 'Salvar',
- editEmail: 'Alterar e-mail',
- editEmailSuccessfully: 'E-mail atualizado',
- updateAvatarSuccessfully: 'Avatar atualizado',
- balenceLow: 'Saldo insuficiente, recarregue',
- confirm: 'Confirmar',
- createFailed: 'Falha na geração, saldo devolvido',
- notice: 'Aviso',
- oldPasswordPlaceholder: 'Digite a senha antiga',
- newpasswordPlaceholder: 'Digite a nova senha',
- switchPageTip: 'O vídeo está sendo gerado; saia e veja o histórico de consumo.',
- loginless: 'Sessão expirada; faça login novamente.',
- createVideo: 'Gerar vídeo (usa {price} de saldo)',
- ok: 'Confirmar',
- rechartNotice: 'Instruções de recarga',
- rechargeNotice1: '1. A recarga é creditada na hora. Se não mudar, atualize a página.',
- rechargeNotice2: '2. Pacotes por tempo limitado são promoções; você pode recarregar várias vezes.',
- rechargeNotice3: '3. O saldo recarregado não tem prazo.',
- rechargeNotice4: 'Confira o pacote antes de comprar; não há reembolso.',
- rechargeLeft: 'Saldo',
- dollor: 'USD',
- isDevelop: 'Em desenvolvimento.',
- copySuccessfully: 'Copiado',
- copyLink: 'Copiar link',
- goPay: 'Ir para pagamento',
- filePreview: 'Visualizar',
- doSame: 'Fazer igual',
- saveQRCode: 'Salvar código QR',
- invitationCodePlaceholder: 'Digite o código de convite',
- testRecharge: 'Recarga de teste',
- orderNo: 'Número do pedido',
- orderNoP: 'O número do pedido é obrigatório',
- emailNotExists: 'O e-mail não está cadastrado',
- gearNotExists: 'O plano de recarga não existe; escolha outro.',
- myProduct: 'Minhas obras',
- permissionError: 'Sua recarga acumulada é {total}, não atende para visualizar.',
- createTagFailed: 'Falha na geração; atualize e tente de novo.',
- loadingText: 'Carregando...',
- hasMore: 'Deslize para mais',
- noMore: 'Não há mais',
- giftAmount: 'Valor creditado',
- cardNo: 'Número do cartão',
- cardName: 'Nome no cartão',
- cardNoRequired: 'Digite o número do cartão',
- cardNameRequired: 'Digite o nome no cartão',
- rechargeFailed: 'Recarga falhou',
- vmCardInfo: 'Dados do cartão',
- cardNumber: 'Número do cartão',
- cardNumberPlaceholder: 'Digite o número do cartão',
- cardNumberRequired: 'Digite o número do cartão',
- cardNumberInvalid: 'O número deve ter 13-19 dígitos',
- cvc: 'CVC',
- cvcPlaceholder: 'Digite o CVC',
- cvcRequired: 'Digite o CVC',
- cvcInvalid: 'CVC deve ter 3 dígitos',
- expYear: 'Ano de validade',
- expYearPlaceholder: 'Digite o ano (ex.: 2027)',
- expYearRequired: 'Digite o ano de validade',
- expYearInvalid: 'O ano deve ter 4 dígitos',
- expMonth: 'Mês de validade',
- expMonthPlaceholder: 'Selecione o mês',
- expMonthRequired: 'Selecione o mês',
- email: 'E-mail',
- emailPlaceholder: 'Digite o e-mail',
- emailRequired: 'Digite o e-mail',
- emailInvalid: 'Formato de e-mail inválido',
- emailMaxLength: 'Máx. 30 caracteres',
- firstName: 'Nome',
- firstNamePlaceholder: 'Digite o nome',
- firstNameRequired: 'Digite o nome',
- firstNameMaxLength: 'Máx. 30 caracteres',
- lastName: 'Sobrenome',
- lastNamePlaceholder: 'Digite o sobrenome',
- lastNameRequired: 'Digite o sobrenome',
- lastNameMaxLength: 'Máx. 30 caracteres',
- country: 'País',
- countryPlaceholder: 'Selecione o país',
- countryRequired: 'Selecione o país',
- submit: 'Enviar',
- cancel: 'Cancelar'
-}
diff --git a/portal-ui/src/lang/pt_BR/index.js b/portal-ui/src/lang/pt_BR/index.js
deleted file mode 100644
index 1136137..0000000
--- a/portal-ui/src/lang/pt_BR/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/pt_BR/route.js b/portal-ui/src/lang/pt_BR/route.js
deleted file mode 100644
index 959ef10..0000000
--- a/portal-ui/src/lang/pt_BR/route.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- index: 'Início',
- imageToImage: 'Despir em um clique',
- imageToImage2: 'Imagem para Imagem 2',
- changeFace: 'Trocar rosto',
- changeFaceVideo: 'Trocar rosto em vídeo',
- fastImage: 'Gerar imagem',
- fastVideo: 'Gerar vídeo',
- recharge: 'Recarga rápida',
- help: 'Central de ajuda',
- moneyInvite: 'Convite com recompensa',
- assetGroupManage: 'Gerenciamento de grupos de ativos',
- assetManage: 'Gerenciamento de ativos',
- thirdPartyAsset: 'Ativos de terceiros'
-}
diff --git a/portal-ui/src/lang/ru_RU/common.js b/portal-ui/src/lang/ru_RU/common.js
deleted file mode 100644
index 71443a6..0000000
--- a/portal-ui/src/lang/ru_RU/common.js
+++ /dev/null
@@ -1,179 +0,0 @@
-export default {
- image1: 'Раздеть в один клик',
- image2: 'Изображение в изображение 2',
- uploadImage: 'Загрузить изображение',
- uploadImageTip: 'PNG/JPG, макс. 10 МБ',
- uploadPlaceholder: 'Нажмите, чтобы загрузить',
- selectImageSource: 'Выберите источник изображения',
- selectTemplate: 'Выберите шаблон',
- reselectTemplate: 'Выбрать шаблон заново',
- noTemplates: 'Нет шаблонов',
- tag1: 'Тип метки 1',
- tag2: 'Тип метки 2',
- tag3: 'Тип метки 3',
- generateImage: 'Создать сейчас (списание {score} с баланса)',
- generateImageNow: 'Создать сейчас',
- generateTip: 'После отправки смотрите в «Мои работы»',
- generateVideo: 'Создать видео',
- imageFace: 'Заменить лицо на изображении',
- videoFace: 'Заменить лицо в видео',
- uploadImageFace: 'Нажмите, чтобы загрузить фото лица',
- uploadTemplate: 'Нажмите, чтобы загрузить свой шаблон',
- textPlaceholder: 'Опишите изображение, которое хотите получить',
- uploadImageError: 'Загрузите изображение',
- replaceImage: 'Заменить изображение',
- uploadFaceImageError: 'Загрузите фото лица',
- uploadTemplateError: 'Загрузите свой шаблон',
- textError: 'Введите текст подсказки',
- textVideoPlaceholder: 'Опишите видео, которое хотите получить',
- uploadFirstPlaceholder: 'Нажмите, чтобы загрузить первый кадр',
- uploadLastPlaceholder: 'Нажмите, чтобы загрузить последний кадр',
- uploadFirstImageError: 'Загрузите изображение первого кадра',
- uploadWaitImageError: 'Дождитесь окончания загрузки',
- saveVideo: 'Скачать видео',
- videoLoadingText: 'Создание видео...',
- viewVideo: 'Смотреть видео',
- changeFacePrompt: 'Взять лицо со второй картинки и заменить им лицо на первой',
- rechartTip1: 'При пополнении через кошелёк проверьте сеть кошелька.',
- rechartTip2: 'Зачисление может задерживаться; подождите 3–5 минут и обновите.',
- walletAddr: 'Адрес кошелька:',
- fbTitle: 'Внимание! Сайт только для взрослых!',
- fbContent: 'Входя, я подтверждаю, что мне 18 лет или больше',
- fbCancel: 'Мне нет 18',
- fbOK: 'Мне есть 18',
- sorry: 'Извините!',
- useLess: 'Вам запрещено пользоваться этим сайтом...',
- loginAccount: 'Вход',
- logout: 'Выйти',
- userEmailPlaceholder: 'Введите email или логин',
- passwordPlaceholder: 'Введите пароль',
- forgetPassword: 'Забыли пароль?',
- register: 'Регистрация',
- login: 'Войти',
- forgotPassword: 'Забыл пароль',
- registerAccount: 'Создать аккаунт',
- usernamePlaceholder: 'Введите имя пользователя',
- codePlaceholder: 'Введите код подтверждения',
- confirmPasswordPlaceholder: 'Подтвердите пароль',
- backToLogin: 'Вернуться к входу',
- send: 'Отправить',
- emailValidPlaceholder: 'Введите корректный email',
- confirmPwdValidMsg: 'Пароли не совпадают',
- editPassword: 'Изменить пароль',
- recharge: 'Пополнить',
- myAccount: 'Мой аккаунт',
- moneyInvite: 'Приглашение с наградой',
- rechargeRecord: 'История пополнений',
- resumeRecord: 'История списаний',
- inviteRecord: 'История приглашений',
- username: 'Имя пользователя',
- userId: 'ID пользователя',
- accountAmount: 'Баланс',
- editUserInfo: 'Редактировать данные',
- contact: 'Связаться с нами',
- backToUser: 'Назад',
- moneyTips: 'При регистрации по вашей ссылке вы получаете {rate} от каждой его пополнения.',
- inviteCode: 'Код приглашения',
- inviteLink: 'Ссылка приглашения',
- saveImage: 'Сохранить изображение',
- totalAmount: 'Всего пополнено',
- amount: 'Сумма',
- sendAmount: 'Сумма бонуса',
- rechargeType: 'Способ пополнения',
- rechargeTime: 'Время пополнения',
- emptyText: 'Нет данных',
- product: 'Работа',
- resumeAmount: 'Списано',
- productType: 'Тип работы',
- productTime: 'Дата создания',
- totalReward: 'Баланс наград',
- rewardAmount: 'Сумма награды',
- rewardTime: 'Время награды',
- reSend: 'Отправить снова',
- registerSuccessfully: 'Регистрация выполнена',
- loginSuccessfully: 'Вход выполнен',
- passwordResetSuccessfully: 'Пароль сброшен',
- rechargeSuccessfully: 'Пополнение выполнено',
- avatar: 'Аватар',
- input: 'Введите',
- save: 'Сохранить',
- editEmail: 'Изменить email',
- editEmailSuccessfully: 'Email обновлён',
- updateAvatarSuccessfully: 'Аватар обновлён',
- balenceLow: 'Недостаточно средств, пополните баланс',
- confirm: 'Подтвердить',
- createFailed: 'Ошибка создания, средства возвращены',
- notice: 'Уведомление',
- oldPasswordPlaceholder: 'Введите старый пароль',
- newpasswordPlaceholder: 'Введите новый пароль',
- switchPageTip: 'Видео создаётся; выйдите и проверьте историю списаний.',
- loginless: 'Сессия истекла. Войдите снова.',
- createVideo: 'Создать видео (списание {price} с баланса)',
- ok: 'Подтвердить',
- rechartNotice: 'Правила пополнения',
- rechargeNotice1: '1. Средства зачисляются сразу. Если не изменилось — обновите страницу.',
- rechargeNotice2: '2. Акционные пакеты проводятся периодически; можно пополнять несколько раз.',
- rechargeNotice3: '3. Пополненный баланс не имеет срока действия.',
- rechargeNotice4: 'Перед покупкой ознакомьтесь с пакетом; возврат не предусмотрен.',
- rechargeLeft: 'Баланс',
- dollor: 'USD',
- isDevelop: 'В разработке.',
- copySuccessfully: 'Скопировано',
- copyLink: 'Копировать ссылку',
- goPay: 'Перейти к оплате',
- filePreview: 'Предпросмотр',
- doSame: 'Сделать похожее',
- saveQRCode: 'Сохранить QR-код',
- invitationCodePlaceholder: 'Введите код приглашения',
- testRecharge: 'Тестовое пополнение',
- orderNo: 'Номер заказа',
- orderNoP: 'Номер заказа обязателен',
- emailNotExists: 'Этот email не зарегистрирован',
- gearNotExists: 'Выбранный тариф отсутствует; выберите другой.',
- myProduct: 'Мои работы',
- permissionError: 'Ваше суммарное пополнение {total}, недостаточно для просмотра.',
- createTagFailed: 'Ошибка создания; обновите страницу и повторите.',
- loadingText: 'Загрузка...',
- hasMore: 'Потяните вверх для подгрузки',
- noMore: 'Больше нет',
- giftAmount: 'Зачисленная сумма',
- cardNo: 'Номер карты',
- cardName: 'Имя владельца',
- cardNoRequired: 'Введите номер карты',
- cardNameRequired: 'Введите имя владельца',
- rechargeFailed: 'Ошибка пополнения',
- vmCardInfo: 'Данные карты',
- cardNumber: 'Номер карты',
- cardNumberPlaceholder: 'Введите номер карты',
- cardNumberRequired: 'Введите номер карты',
- cardNumberInvalid: 'Номер карты должен быть из 13–19 цифр',
- cvc: 'CVC',
- cvcPlaceholder: 'Введите CVC',
- cvcRequired: 'Введите CVC',
- cvcInvalid: 'CVC должен быть из 3 цифр',
- expYear: 'Год срока действия',
- expYearPlaceholder: 'Введите год (например 2027)',
- expYearRequired: 'Введите год',
- expYearInvalid: 'Год должен быть из 4 цифр',
- expMonth: 'Месяц срока действия',
- expMonthPlaceholder: 'Выберите месяц',
- expMonthRequired: 'Выберите месяц',
- email: 'Email',
- emailPlaceholder: 'Введите email',
- emailRequired: 'Введите email',
- emailInvalid: 'Некорректный email',
- emailMaxLength: 'Email не более 30 символов',
- firstName: 'Имя',
- firstNamePlaceholder: 'Введите имя',
- firstNameRequired: 'Введите имя',
- firstNameMaxLength: 'Имя не более 30 символов',
- lastName: 'Фамилия',
- lastNamePlaceholder: 'Введите фамилию',
- lastNameRequired: 'Введите фамилию',
- lastNameMaxLength: 'Фамилия не более 30 символов',
- country: 'Страна',
- countryPlaceholder: 'Выберите страну',
- countryRequired: 'Выберите страну',
- submit: 'Отправить',
- cancel: 'Отмена'
-}
diff --git a/portal-ui/src/lang/ru_RU/index.js b/portal-ui/src/lang/ru_RU/index.js
deleted file mode 100644
index 1136137..0000000
--- a/portal-ui/src/lang/ru_RU/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import route from './route'
-import common from './common.js'
-
-export default {
- route,
- common
-}
diff --git a/portal-ui/src/lang/ru_RU/route.js b/portal-ui/src/lang/ru_RU/route.js
deleted file mode 100644
index b1f1bb0..0000000
--- a/portal-ui/src/lang/ru_RU/route.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- index: 'Главная',
- imageToImage: 'Раздеть в один клик',
- imageToImage2: 'Изображение в изображение 2',
- changeFace: 'Заменить лицо',
- changeFaceVideo: 'Заменить лицо в видео',
- fastImage: 'Создать изображение',
- fastVideo: 'Создать видео',
- recharge: 'Быстрая пополнение',
- help: 'Центр помощи',
- moneyInvite: 'Приглашение с наградой',
- assetGroupManage: 'Управление группами ресурсов',
- assetManage: 'Управление ресурсами',
- thirdPartyAsset: 'Сторонние материалы'
-}
diff --git a/portal-ui/src/lang/zh_HK/route.js b/portal-ui/src/lang/zh_HK/route.js
index 6d83149..674e9d9 100644
--- a/portal-ui/src/lang/zh_HK/route.js
+++ b/portal-ui/src/lang/zh_HK/route.js
@@ -12,5 +12,6 @@ export default {
moneyInvite: '有獎邀請',
assetGroupManage: '資源組管理',
assetManage: '素材管理',
- thirdPartyAsset: '三方素材管理'
+ thirdPartyAsset: '三方素材管理',
+ generatedAssets: '生成庫'
}
\ No newline at end of file
diff --git a/portal-ui/src/layout/components/Menu.vue b/portal-ui/src/layout/components/Menu.vue
index 4eefeba..85601c8 100644
--- a/portal-ui/src/layout/components/Menu.vue
+++ b/portal-ui/src/layout/components/Menu.vue
@@ -47,7 +47,7 @@ import { constantRoutes } from '@/router/index'
import { generateTitle, generateLang } from '@/utils/i18n'
/** 左侧导航仅显示这些路由(name 与 router/index.js 一致) */
-const SIDEBAR_ONLY_ROUTE_NAMES = ['video-gen', 'third-party-asset']
+const SIDEBAR_ONLY_ROUTE_NAMES = ['video-gen', 'third-party-asset', 'generated-assets']
defineProps({
collapsed: Boolean
@@ -152,6 +152,9 @@ const getMenuSvg = (key) => {
if (key === 'third-party-asset') {
return ''
}
+ if (key === 'generated-assets') {
+ return ''
+ }
return ''
}
diff --git a/portal-ui/src/router/index.js b/portal-ui/src/router/index.js
index 70e91bd..9d07856 100644
--- a/portal-ui/src/router/index.js
+++ b/portal-ui/src/router/index.js
@@ -139,7 +139,17 @@ export const constantRoutes = [{
permission: "pass",
icon: 'btn_video'
}
- }, {
+ },{
+ path: 'generated-assets',
+ name: 'generated-assets',
+ component: () => import('@/views/GeneratedAssets.vue'),
+ meta: {
+ title: 'generatedAssets',
+ menuItem: true,
+ permission: "pass",
+ icon: 'btn_video'
+ }
+ }, {
path: 'asset-group-manage',
name: 'asset-group-manage',
component: () => import('@/views/AssetGroupManage.vue'),
diff --git a/portal-ui/src/views/GeneratedAssets.vue b/portal-ui/src/views/GeneratedAssets.vue
new file mode 100644
index 0000000..ff902c8
--- /dev/null
+++ b/portal-ui/src/views/GeneratedAssets.vue
@@ -0,0 +1,838 @@
+
+
+
+
+
+
+
+
+ ID
+ 订单编号
+ 类型
+ 状态
+ 模型参数
+ 生成结果
+ 创建时间
+ 操作
+
+
+ {{ item.id }}
+ {{ item.orderNum || '-' }}
+ {{ formatType(item.type) }}
+
+
+
+
+
+
+
+
{{ item.createTime || '-' }}
+
+
+
+
+
+ 暂无数据
+
+
+
+
{{ formatVideoParams(detailData.videoParams) }}
+
+