800 lines
28 KiB
JavaScript
800 lines
28 KiB
JavaScript
export default {
|
||
common: {
|
||
confirm: 'Confirm',
|
||
cancel: 'Cancel',
|
||
and: 'and',
|
||
submit: 'Submit',
|
||
processing: 'Processing',
|
||
submitting: 'Submitting',
|
||
uploading: 'Uploading...',
|
||
getting: 'Getting...',
|
||
filling: 'Filling...',
|
||
save: 'Save',
|
||
loadFailed: 'Load failed',
|
||
invalidUrl: 'Invalid URL',
|
||
statusCode: 'Status Code',
|
||
message: 'Message',
|
||
none: 'None',
|
||
unexpectedError: 'Unexpected Error',
|
||
processException: 'Process exception',
|
||
errorInfo: 'Error Info',
|
||
edit: 'Edit',
|
||
delete: 'Delete',
|
||
search: 'Search',
|
||
loading: 'Loading...',
|
||
loadingData: 'Loading data...',
|
||
loadingLocation: 'Getting location...',
|
||
loadingMap: 'Loading map...',
|
||
loadingPosition: 'Loading locations...',
|
||
noData: 'No data',
|
||
success: 'Success',
|
||
failed: 'Failed',
|
||
retry: 'Retry',
|
||
back: 'Back',
|
||
next: 'Next',
|
||
complete: 'Complete',
|
||
more: 'More',
|
||
close: 'Close',
|
||
yes: 'Yes',
|
||
no: 'No',
|
||
all: 'All',
|
||
tips: 'Tips',
|
||
notice: 'Notice',
|
||
warning: 'Warning',
|
||
error: 'Error',
|
||
networkError: 'Network Error',
|
||
systemError: 'System Error',
|
||
authFailed: 'Authentication Failed',
|
||
unauthorized: 'Unauthorized',
|
||
loginRequired: 'Please login first',
|
||
operationSuccess: 'Operation successful',
|
||
operationFailed: 'Operation failed',
|
||
sending: 'Sending...',
|
||
loggingIn: 'Logging in...',
|
||
refresh: 'Refresh',
|
||
pull: 'Pull to refresh',
|
||
release: 'Release to refresh',
|
||
noMore: 'No more',
|
||
functionDeveloping: 'Function under development'
|
||
},
|
||
|
||
nav: {
|
||
home: 'Home',
|
||
my: 'Me',
|
||
orders: 'Orders',
|
||
settings: 'Settings',
|
||
back: 'Back',
|
||
title: 'FengDianZhe'
|
||
},
|
||
|
||
app: {
|
||
name: 'FengDianZhe',
|
||
slogan: 'Fan & Power Bank Rental',
|
||
fullName: 'FengDianZhe',
|
||
welcome: 'Welcome'
|
||
},
|
||
|
||
home: {
|
||
title: 'FengDianZhe',
|
||
nearbyDevices: 'Nearby',
|
||
scanToUse: 'Scan',
|
||
personalCenter: 'Profile',
|
||
useGuide: 'Guide',
|
||
navigate: 'Navigate',
|
||
relocate: 'Relocate',
|
||
search: 'Search',
|
||
service: 'Service',
|
||
searchPlaceholder: 'Search locations',
|
||
nearbyDeviceLocation: 'Nearby',
|
||
noNearbyDevice: 'No devices nearby',
|
||
relocating: 'Locating...',
|
||
locateSuccess: 'Located',
|
||
locateFailed: 'Location failed',
|
||
invalidQRCode: 'Invalid QR code',
|
||
scanFailed: 'Scan failed',
|
||
noticeTitle: 'Notice',
|
||
getLocationFailed: 'Location unavailable'
|
||
},
|
||
|
||
guide: {
|
||
title: 'How to Use',
|
||
step1Title: 'Scan QR Code',
|
||
step1Desc: 'Find a device and scan its QR code',
|
||
step2Title: 'No Deposit',
|
||
step2Desc: 'Rent with WeChat Pay Score, no deposit needed',
|
||
step3Title: 'Start Using',
|
||
step3Desc: 'Device unlocks, take out the fan',
|
||
step4Title: 'Return',
|
||
step4Desc: 'Insert fan back when done'
|
||
},
|
||
|
||
location: {
|
||
rent: 'Available',
|
||
return: 'Returnable',
|
||
navigate: 'Navigate',
|
||
distance: 'Distance',
|
||
businessHours: 'Business Hours: ',
|
||
navigateHere: 'Navigate Here',
|
||
coordinateError: 'Invalid location coordinates',
|
||
notExist: 'Location does not exist',
|
||
supportCouponOrMember: 'Coupons & Cards Available'
|
||
},
|
||
|
||
device: {
|
||
reportError: 'Report Error',
|
||
scanToUse: 'Scan to Use',
|
||
deviceInfo: 'Device Info',
|
||
deviceNo: 'Device No.',
|
||
location: 'Location',
|
||
businessHours: 'Business Hours',
|
||
pricing: 'Pricing',
|
||
pricingText: '$0.7/hour, $5/24 hours, Max $125',
|
||
getDeviceInfoFailed: 'Failed to get device info',
|
||
available: 'Available',
|
||
offline: 'Offline',
|
||
pricingRules: 'Pricing Rules',
|
||
capLimit: ' Cap',
|
||
usageInstructions: 'Usage Instructions',
|
||
checkBeforeUse: 'Please check if the device is in good condition before use',
|
||
autoChargeOvertime: 'Overtime will be charged automatically by hour',
|
||
useInDesignatedArea: 'Please use the device in designated area',
|
||
rentDepositFree: 'Rent Deposit-free',
|
||
wxPayScoreDesc: 'WeChat Pay Score | 550+ points enjoy',
|
||
checking: 'Checking',
|
||
deviceNoNotRecognized: 'Device number not recognized',
|
||
processFailed: 'Process failed, please try again later',
|
||
sharedFan: 'Shared Fan',
|
||
deviceNoRequired: 'Device number is required',
|
||
rentFailed: 'Device rent failed',
|
||
rentSuccess: 'Rent successful',
|
||
rentFailedRetry: 'Rent failed, please retry',
|
||
getPayParamsFailed: 'Failed to get payment parameters',
|
||
payScoreFailedCancelled: 'Pay score call failed, order cancelled',
|
||
canUsePromotion: 'Tips: Coupons and membership cards available',
|
||
goToBuy: 'Buy Now'
|
||
},
|
||
|
||
order: {
|
||
myOrders: 'My Orders',
|
||
noOrderRecord: 'No order records',
|
||
getOrderListFailed: 'Failed to get order list',
|
||
confirmCancelContent: 'Are you sure to cancel this order?',
|
||
orderDetail: 'Order Detail',
|
||
orderNo: 'Order No.',
|
||
orderStatus: 'Order Status',
|
||
deviceNo: 'Device No.',
|
||
rentLocation: 'Rent Location',
|
||
rentTime: 'Rent Time',
|
||
returnTime: 'Return Time',
|
||
startTime: 'Start Time',
|
||
endTime: 'End Time',
|
||
duration: 'Duration',
|
||
amount: 'Amount',
|
||
totalAmount: 'Total Amount',
|
||
payAmount: 'Pay Amount',
|
||
deposit: 'Deposit',
|
||
rentFee: 'Rent Fee',
|
||
payNow: 'Pay Now',
|
||
myCoupons:'Coupons',
|
||
myCards:'Member Cards',
|
||
cancelOrder: 'Cancel Order',
|
||
quickReturn: 'Quick Return',
|
||
returnDevice: 'Return Device',
|
||
viewDetails: 'View Details',
|
||
orderCompleted: 'Order Completed',
|
||
orderCancelled: 'Order Cancelled',
|
||
waitingForPayment: 'Pending',
|
||
inUse: 'In Use',
|
||
finished: 'Finished',
|
||
cancelled: 'Cancelled',
|
||
renting: 'Renting',
|
||
rentFan: 'Rent Fan',
|
||
noOrder: 'No orders in use',
|
||
getOrderFailed: 'Failed to get order',
|
||
paymentSuccess: 'Payment successful',
|
||
paymentFailed: 'Payment failed',
|
||
cancelSuccess: 'Cancelled successfully',
|
||
cancelFailed: 'Cancel failed',
|
||
returnSuccess: 'Returned successfully',
|
||
returnFailed: 'Return failed',
|
||
confirmCancel: 'Confirm to cancel order?',
|
||
confirmReturn: 'Confirm to return device?',
|
||
wxPayScore: 'WeChat Pay Score',
|
||
depositFree: 'Deposit-free',
|
||
whitelistOrder: 'Whitelist Order',
|
||
memberOrder: 'Member Order',
|
||
wxPay: 'WeChat Pay',
|
||
depositPay: 'Deposit Pay',
|
||
paymentInProgress: 'Payment in Progress',
|
||
paymentFailedRetry: 'Payment failed, please try again',
|
||
pleasePaySoon: 'Please complete payment soon',
|
||
pleaseReturnInTime: 'Please take good care of the device and return it in time',
|
||
returnedThankYou: 'Your fan has been returned, thank you for using',
|
||
used: 'Used',
|
||
rentInfo: 'Rent Information',
|
||
fanNo: 'Fan No.',
|
||
rentMethod: 'Rent Method',
|
||
returnLocation: 'Return Location',
|
||
paid: 'Paid',
|
||
canExpressReturn: ' later for express return',
|
||
pauseBilling: 'Pause Billing',
|
||
rentAgain: 'Rent Again',
|
||
backToHome: 'Back to Home',
|
||
feeAppeal: 'Fee Appeal',
|
||
orderIdRequired: 'Order ID is required',
|
||
refundSuccess: 'Refund request successful',
|
||
refundFailed: 'Refund request failed',
|
||
orderNotExist: 'Order info does not exist',
|
||
currentFee: 'Current Fee',
|
||
returnInstructions: 'Return Instructions',
|
||
ensureDeviceIntact: 'Please ensure the device is intact',
|
||
insertFanBack: 'Insert the fan back to original or empty slot',
|
||
autoDetectReturn: 'System will auto-detect return and process refund',
|
||
autoJumpAfterReturn: 'Will auto-jump to success page after return',
|
||
refreshStatus: 'Refresh Status',
|
||
countdown: 'Countdown',
|
||
pauseAndExpress: 'Pause billing, express return',
|
||
orderInfoMissing: 'Order info missing',
|
||
returnSuccessMessage: 'Fan returned successfully, remaining deposit will be refunded',
|
||
noOrderInUse: 'No order in use found',
|
||
pleaseRefreshManually: 'Please refresh manually to check return status',
|
||
cancelling: 'Cancelling order',
|
||
cancelFailedContactService: 'Cancel failed, please contact customer service',
|
||
getOrderStatusFailed: 'Failed to get order status',
|
||
syncSuccess: 'Status synced successfully',
|
||
syncFailed: 'Sync failed',
|
||
freeRentTime: 'Free Time',
|
||
pricingRule: 'Pricing Rule',
|
||
paymentMethod: 'Payment Method',
|
||
perHour: 'per hour',
|
||
perMinute: 'per minute',
|
||
perHalfHour: 'per half hour',
|
||
deviceNoEject: 'Not Ejected',
|
||
returnReminder: 'Return Reminder',
|
||
canUsePromotion: 'Coupons & Cards Available',
|
||
usedPromotion: 'Promotion Applied',
|
||
convertToOwn: 'Don\'t want to return? Convert to own',
|
||
convertToOwnTitle: 'Convert to Own',
|
||
convertToOwnConfirm: 'Only ¥99 to convert to own. The power bank will be yours. Confirm?',
|
||
convertToOwnSuccess: 'Successfully converted to own',
|
||
convertToOwnFailed: 'Operation failed, please try again',
|
||
convertToOwnConfirmBtn: 'Own It',
|
||
convertToOwnCancelBtn: 'Keep Rent',
|
||
convertToOwnWithMaxFee: 'Don\'t want to return? Convert to own',
|
||
convertToOwnWithMaxFeeTitle: 'Take It Home!',
|
||
convertToOwnWithMaxFeeConfirm: 'Since you love using it, buy it out and take it home! Only ¥99, the device is yours forever – no return needed~\n✅Type-C charging supported, perfect for home use~\n✅No usage limits after purchase, use it freely!',
|
||
convertToOwnWithMaxFeeSuccess: 'Purchase successful',
|
||
convertToOwnWithMaxFeeFailed: 'Purchase failed, please try again',
|
||
deviceNoEjectTitle: 'Device Not Ejected',
|
||
deviceNoEjectConfirm: 'Your power bank didn\'t eject? We will handle it immediately, expected to resolve within 5 minutes.',
|
||
deviceNoEjectSuccess: 'Feedback received, will be handled within 5 minutes',
|
||
deviceNoEjectFailed: 'Feedback submission failed, please try again',
|
||
returnProblemTip: 'After returning, if the order is still active, please go to ',
|
||
contactStaff: ' to contact staff.'
|
||
},
|
||
|
||
user: {
|
||
clickToLogin: 'Login',
|
||
loginPrompt: 'Login to continue',
|
||
personalCenter: 'Profile',
|
||
depositBalance: 'Balance',
|
||
withdraw: 'Withdraw',
|
||
commonServices: 'Services',
|
||
quickReturn: 'Quick Return',
|
||
quickReturnDesc: '(View active orders)',
|
||
expressReturn: 'Express Return',
|
||
myOrders: 'Orders',
|
||
myCards: 'My Cards',
|
||
myCoupons: 'My Coupons',
|
||
customerService: 'Support',
|
||
feedback: 'Feedback',
|
||
businessLicense: 'License',
|
||
cooperation: 'Partner',
|
||
settings: 'Settings',
|
||
userAgreement: 'Terms',
|
||
privacyPolicy: 'Privacy',
|
||
version: 'v',
|
||
logout: 'Logout',
|
||
confirmLogout: 'Logout?',
|
||
logoutSuccess: 'Logged out',
|
||
getUserInfoFailed: 'Failed',
|
||
updateSuccess: 'Updated',
|
||
updateFailed: 'Failed',
|
||
avatarUpdated: 'Avatar updated',
|
||
avatarUploadFailed: 'Upload failed',
|
||
noAvatar: 'No avatar',
|
||
noAvatarUrl: 'Failed',
|
||
avatarDownloadFailed: 'Download failed',
|
||
notLoggedIn: 'Not logged in',
|
||
phoneNotBound: 'No phone',
|
||
balanceDesc: 'Available for rental',
|
||
feedbackRecord: 'Feedback Records'
|
||
},
|
||
|
||
auth: {
|
||
authTitle: 'Phone Login',
|
||
authDesc: 'We need your phone for service and contact',
|
||
getPhoneNumber: 'Login with Phone',
|
||
notNow: 'Skip',
|
||
authRequired: 'Login Required',
|
||
authSuccess: 'Success',
|
||
authFailed: 'Failed',
|
||
loginTitle: 'Login',
|
||
loginDesc: 'Login for better experience',
|
||
getUserInfoSuccess: 'Success',
|
||
getUserInfoFailed: 'Failed',
|
||
pleaseUseInWechat: 'Use in WeChat',
|
||
agreeToTerms: 'I agree to',
|
||
pleaseAgreeToTerms: 'Please agree to terms',
|
||
loginSuccess: 'Login successful',
|
||
loginFailed: 'Login failed',
|
||
phoneCancelled: 'Cancelled',
|
||
goToLogin: 'Login',
|
||
authDescShort: 'Phone number required for service',
|
||
phoneRequired: 'Phone required',
|
||
getting: 'Loading...',
|
||
phoneSuccess: 'Success',
|
||
phoneError: 'Error',
|
||
phoneGetFailed: 'Failed',
|
||
authCodeFailed: 'Auth failed',
|
||
phoneLogin: 'Phone Login',
|
||
phonePlaceholder: 'Enter phone number',
|
||
codePlaceholder: 'Enter verification code',
|
||
getCode: 'Get Code',
|
||
resend: 'Resend',
|
||
loginBtn: 'Login',
|
||
phoneRequired: 'Phone required',
|
||
phoneInvalid: 'Invalid phone number',
|
||
codeRequired: 'Verification code required',
|
||
codeSent: 'Code sent',
|
||
sendCodeFailed: 'Send code failed',
|
||
regionNotSupported: 'Non-mainland China, Hong Kong, Macau users please login via platform phone authorization',
|
||
onlyMainlandSupported: 'Currently only Mainland China is supported',
|
||
getServicePhoneFailed: 'Failed to get service phone',
|
||
noAuthToken: 'Login successful but no credentials obtained'
|
||
},
|
||
|
||
permission: {
|
||
locationTitle: 'Location Permission',
|
||
locationNeed: 'We need your location to show nearby devices. Please enable location access in “Settings > Permissions”.',
|
||
locationDenied: 'Location access is disabled. You can enable it later in “Settings > Permissions” to continue.',
|
||
goToSettings: 'Open Settings',
|
||
later: 'Not now',
|
||
gotIt: 'Got it'
|
||
},
|
||
|
||
payment: {
|
||
paymentAmount: 'Amount',
|
||
paymentMethod: 'Method',
|
||
wechatPay: 'WeChat',
|
||
alipay: 'Alipay',
|
||
balance: 'Balance',
|
||
payNow: 'Pay',
|
||
paying: 'Processing...',
|
||
paymentSuccess: 'Success',
|
||
paymentFailed: 'Failed',
|
||
paymentCancelled: 'Cancelled',
|
||
orderPayment: 'Payment',
|
||
waitingForPayment: 'Pending',
|
||
pleasePayIn15Min: 'Pay within 15 min',
|
||
orderInfo: 'Order',
|
||
createTime: 'Created',
|
||
contactPhone: 'Phone',
|
||
feeInfo: 'Fee',
|
||
deposit: 'Deposit',
|
||
package: 'Package',
|
||
total: 'Total',
|
||
paymentFailedRetry: 'Payment failed, retry?',
|
||
createPayOrderFailed: 'Failed',
|
||
subscriptionSuccess: 'Subscription successful',
|
||
subscriptionFailed: 'Subscription failed, please try again'
|
||
},
|
||
|
||
feedback: {
|
||
uploading: 'Uploading...',
|
||
title: 'Feedback',
|
||
placeholder: 'Describe the issue',
|
||
submit: 'Submit',
|
||
submitSuccess: 'Submitted',
|
||
submitFailed: 'Failed',
|
||
contentRequired: 'Enter details',
|
||
issueType: 'Type',
|
||
issueDescription: 'Description',
|
||
imageUpload: 'Photo (Optional)',
|
||
uploadImage: 'Upload',
|
||
contactInfo: 'Contact',
|
||
contactPlaceholder: 'Your phone',
|
||
pleaseSelectType: 'Select type',
|
||
pleaseDescribe: 'Describe issue',
|
||
pleaseContact: 'Leave contact',
|
||
imageUploadFailed: 'Image upload failed, please try again',
|
||
deviceFault: 'Device Fault',
|
||
chargingIssue: 'Charging',
|
||
usageSuggestion: 'Suggestion',
|
||
other: 'Other',
|
||
recordList: 'Feedback Records',
|
||
detail: 'Feedback Detail',
|
||
noRecord: 'No feedback records',
|
||
getListFailed: 'Failed to get list',
|
||
getDetailFailed: 'Failed to get detail',
|
||
processing: 'Processing',
|
||
completed: 'Completed',
|
||
pending: 'Pending',
|
||
complain: 'Complain',
|
||
suggestion: 'Suggestion',
|
||
contactPhone: 'Contact Phone',
|
||
initialSubmit: 'Initial Submit',
|
||
submitTime: 'Submit Time',
|
||
uploadedImages: 'Uploaded Images',
|
||
platformReplies: 'Platform Replies',
|
||
userReplies: 'User Replies',
|
||
platform: 'Platform',
|
||
me: 'Me',
|
||
replyPlaceholder: 'Enter your reply...',
|
||
submitReply: 'Submit Reply',
|
||
replySuccess: 'Reply successful',
|
||
replyFailed: 'Reply failed',
|
||
pleaseEnterReply: 'Please enter reply content',
|
||
idRequired: 'Feedback ID is required',
|
||
viewRecords: 'View Records',
|
||
replyHistory: 'Reply History'
|
||
},
|
||
|
||
help: {
|
||
title: 'Customer Service',
|
||
commonQuestions: 'Common Questions',
|
||
contactUs: 'Contact Us',
|
||
phone: 'Phone',
|
||
email: 'Email',
|
||
workingHours: 'Working Hours',
|
||
workingHoursValue: 'Mon-Sun 09:00-22:00',
|
||
functionDeveloping: 'Feature in development',
|
||
faq1Question: 'How to rent a fan?',
|
||
faq1Answer: 'Click "Scan to Rent" on the homepage, scan the QR code on the device with WeChat, and complete payment as prompted.',
|
||
faq2Question: 'What are the charges?',
|
||
faq2Answer: 'Our fan rental is deposit-free. Specific billing is shown when scanning the device QR code.',
|
||
faq3Question: 'How to return the fan?',
|
||
faq3Answer: 'Bring the fan to any return point, click "Scan to Return" on homepage, and scan the return point QR code.',
|
||
faq4Question: 'When will deposit be refunded?',
|
||
faq4Answer: 'Deposit refund is automatically initiated after returning. It takes 0-7 business days.',
|
||
faq5Question: 'What if device doesn\'t work?',
|
||
faq5Answer: 'Submit feedback via "My - Feedback", or call customer service directly.'
|
||
},
|
||
|
||
settings: {
|
||
title: 'Settings',
|
||
language: 'Language',
|
||
languageSetting: 'Language Setting',
|
||
chinese: '简体中文',
|
||
english: 'English',
|
||
languageSwitched: 'Language switched, refreshing...',
|
||
notification: 'Notification',
|
||
privacy: 'Privacy',
|
||
about: 'About',
|
||
clearCache: 'Clear Cache',
|
||
cacheCleared: 'Cache cleared',
|
||
logout: 'Logout',
|
||
confirmLogout: 'Confirm to logout?',
|
||
logoutSuccess: 'Logout successful'
|
||
},
|
||
|
||
express: {
|
||
title: 'Express Return',
|
||
addReturn: 'New Return',
|
||
returnRecord: 'Records',
|
||
expressNo: 'Tracking No.',
|
||
expressCompany: 'Courier',
|
||
sendTime: 'Sent',
|
||
receivedTime: 'Received',
|
||
status: 'Status',
|
||
pending: 'Pending',
|
||
shipped: 'Shipped',
|
||
received: 'Received',
|
||
detail: 'Detail',
|
||
recipientInfo: 'Ship To',
|
||
recipientName: 'FengDianZhe 18163601305',
|
||
recipientAddress: 'Rm 623, Bldg A2, Xinchanghai Park, Luogu St, Yuelu, Changsha, Hunan',
|
||
copyAllInfo: 'Copy All',
|
||
recipient: 'To',
|
||
recipientAddressLabel: 'Address',
|
||
copySuccess: 'Copied',
|
||
copyFailed: 'Failed',
|
||
noReturnRecord: 'No records',
|
||
toFill: 'Fill',
|
||
userPhone: 'Phone',
|
||
billingPaused: 'Paused',
|
||
completed: 'Done',
|
||
processing: 'Processing',
|
||
getListFailed: 'Load failed',
|
||
loadFailed: 'Failed',
|
||
returnCompleted: 'Return Completed',
|
||
returnCompletedDesc: 'Your express has been successfully returned',
|
||
processingDesc: 'Processing your return request',
|
||
pendingDesc: 'Waiting to process return request',
|
||
expressInfo: 'Express Info',
|
||
trackingNo: 'Tracking No.',
|
||
packageType: 'Package Type',
|
||
packageWeight: 'Package Weight',
|
||
returnInfo: 'Return Info',
|
||
returnAddress: 'Return Address',
|
||
returnTime: 'Return Time',
|
||
processTime: 'Process Time',
|
||
completeTime: 'Complete Time',
|
||
remarkInfo: 'Remark Info',
|
||
copyTrackingNo: 'Copy Tracking No.',
|
||
trackingNoCopied: 'Tracking number copied',
|
||
workingHours: 'Mon-Sun 09:00-22:00',
|
||
call: 'Call',
|
||
returnDetail: 'Return Detail',
|
||
getDetailFailed: 'Failed to get detail',
|
||
fillExpress: 'Express Return',
|
||
openTime: 'Start Time',
|
||
fillExpressInfo: 'Fill Express Return Info',
|
||
contactPhone: 'Contact Phone',
|
||
fillTrackingPlaceholder: 'Enter tracking number to fill',
|
||
trackingPlaceholder: 'Enter tracking number (optional)',
|
||
confirmFill: 'Confirm Fill',
|
||
submitInfo: 'Submit Info',
|
||
orderNoMissing: 'Order number missing',
|
||
getRecordFailed: 'Failed to get record',
|
||
existingReturnNotice: 'Express return request exists, go to fill tracking number?',
|
||
goToFill: 'Go to Fill',
|
||
alreadyHasRecord: 'Return record already exists',
|
||
pleaseEnterValidPhone: 'Please enter valid contact phone',
|
||
pleaseEnterTrackingNo: 'Please enter tracking number',
|
||
filling: 'Filling',
|
||
fillSuccess: 'Fill successful',
|
||
fillFailed: 'Fill failed',
|
||
submitSuccess: 'Submit successful',
|
||
submitFailed: 'Submit failed'
|
||
},
|
||
|
||
join: {
|
||
title: 'Cooperation',
|
||
cooperationTitle: 'Cooperation Method',
|
||
contactUs: 'Contact Us',
|
||
phone: 'Phone',
|
||
email: 'Email',
|
||
submit: 'Submit Application',
|
||
name: 'Name',
|
||
contactPhone: 'Contact',
|
||
city: 'City',
|
||
intention: 'Intention',
|
||
placeholder: 'Please briefly describe your cooperation intention...',
|
||
submitSuccess: 'Submitted successfully, we will contact you soon',
|
||
submitFailed: 'Submit failed, please try again later',
|
||
pageLoadFailed: 'Page load failed'
|
||
},
|
||
|
||
legal: {
|
||
agreement: 'User Agreement',
|
||
privacy: 'Privacy Policy',
|
||
termsOfService: 'Terms of Service',
|
||
lastUpdate: 'Last Update',
|
||
applicableToService: 'Applicable to "FengDianZhe" shared fan rental service',
|
||
footerNotice: 'If you have questions about this agreement, please go to "My-Customer Service"',
|
||
footerNoticePolicy: 'If you have questions about this policy, please go to "My-Customer Service"'
|
||
},
|
||
|
||
search: {
|
||
title: 'Find Device',
|
||
placeholder: 'Enter location name or address',
|
||
history: 'Search History',
|
||
clear: 'Clear History',
|
||
noResult: 'No results found',
|
||
searching: 'Searching...',
|
||
invalidCoordinate: 'Invalid coordinates',
|
||
positionInfoError: 'Location info error'
|
||
},
|
||
|
||
share: {
|
||
title: 'FengDianZhe - Shared Fan & Power Bank',
|
||
path: '/pages/index/index'
|
||
},
|
||
|
||
error: {
|
||
networkError: 'Network connection failed',
|
||
serverError: 'Server error',
|
||
timeout: 'Request timeout',
|
||
unknown: 'Unknown error',
|
||
tryAgain: 'Please try again later'
|
||
},
|
||
|
||
time: {
|
||
hour: 'hour',
|
||
minute: 'minute',
|
||
second: 'second',
|
||
day: 'day',
|
||
week: 'week',
|
||
month: 'month',
|
||
year: 'year',
|
||
justNow: 'Just now',
|
||
minutesAgo: 'minutes ago',
|
||
hoursAgo: 'hours ago',
|
||
daysAgo: 'days ago',
|
||
yesterday: 'Yesterday',
|
||
today: 'Today',
|
||
tomorrow: 'Tomorrow',
|
||
hours: 'hour(s)',
|
||
minutes: 'minute(s)',
|
||
halfHours: 'half hour(s)'
|
||
},
|
||
|
||
unit: {
|
||
yuan: 'CNY',
|
||
meter: 'm',
|
||
km: 'km',
|
||
piece: 'pc',
|
||
times: 'times'
|
||
},
|
||
|
||
waiting: {
|
||
title: 'Ejecting',
|
||
preparing: 'Preparing...',
|
||
longTimeNotice: 'Taking too long? Contact staff',
|
||
deviceEjecting: 'Ejecting...',
|
||
rentFailed: 'Rental failed',
|
||
timeout: 'Timeout'
|
||
},
|
||
|
||
success: {
|
||
paymentSuccess: 'Payment Successful',
|
||
paymentSuccessDesc: 'Your order has been paid successfully',
|
||
orderInfo: 'Order Info',
|
||
paymentAmount: 'Payment Amount',
|
||
paymentTime: 'Payment Time',
|
||
deviceStatus: 'Device Status',
|
||
preparingDevice: 'Preparing your device, please wait...',
|
||
deviceReady: 'Device ready, please take your fan',
|
||
deviceFailed: 'Device ejection failed, please contact customer service',
|
||
backToHome: 'Back to Home',
|
||
viewOrder: 'View Order',
|
||
returnSuccess: 'Return Successful',
|
||
returnSuccessDesc: 'Your fan has been returned, fee deducted from deposit',
|
||
usedTime: 'Used Time',
|
||
packageTime: 'Package Time',
|
||
extraTime: 'Extra Time',
|
||
returnTime: 'Return Time',
|
||
packageFee: 'Package Fee',
|
||
extraFee: 'Extra Fee',
|
||
totalFee: 'Total Fee',
|
||
depositAmount: 'Deposit',
|
||
refundAmount: 'Refund Amount',
|
||
refundStatus: 'Refund Status',
|
||
refundNotice: 'Refund Notice',
|
||
refundNotice1: 'Deposit balance needs to be manually withdrawn',
|
||
refundNotice2: 'Withdrawal will be refunded to original payment account within 1-3 business days',
|
||
refundNotice3: 'If you have questions, please contact customer service',
|
||
applyRefund: 'Apply Refund',
|
||
refundWaiting: 'Pending',
|
||
refundProcessing: 'Processing',
|
||
refundSuccess: 'Refunded',
|
||
refundFailed: 'Failed'
|
||
},
|
||
|
||
deposit: {
|
||
title: 'Deposit Management',
|
||
depositBalance: 'Deposit Balance',
|
||
withdraw: 'Withdraw',
|
||
withdrawRecord: 'Withdraw Record',
|
||
withdrawAmount: 'Withdraw Amount',
|
||
withdrawStatus: 'Withdraw Status',
|
||
applyWithdraw: 'Apply Withdraw',
|
||
withdrawSuccess: 'Withdraw successful',
|
||
withdrawFailed: 'Withdraw failed',
|
||
noBalance: 'No balance to withdraw',
|
||
confirmWithdraw: 'Confirm Withdraw',
|
||
withdrawDesc: 'Deposit will be refunded to original account within 0-7 business days',
|
||
withdrawing: 'Withdrawing...',
|
||
withdrawSubmitted: 'Withdraw request submitted',
|
||
withdrawNotice: 'Withdraw Notice',
|
||
withdrawNotice1: 'Withdrawal will be refunded to original payment account',
|
||
withdrawNotice2: 'Withdrawal expected to arrive within 0-7 business days',
|
||
withdrawNotice3: 'If delayed, please contact customer service',
|
||
depositRecord: 'Deposit Record',
|
||
payRecord: 'Payment Record',
|
||
refundRecord: 'Refund Record',
|
||
orderNotReturned: 'Current order not returned, please return before withdraw',
|
||
alreadyRefunded: 'Deposit already refunded',
|
||
refundProcessing: 'Refund processing, please wait'
|
||
},
|
||
|
||
userProfile: {
|
||
title: 'Personal Info',
|
||
avatar: 'Avatar',
|
||
nickname: 'Nickname',
|
||
phone: 'Phone',
|
||
edit: 'Edit',
|
||
save: 'Save',
|
||
cancel: 'Cancel',
|
||
clickToChange: 'Click to change avatar',
|
||
notSet: 'Not set',
|
||
notBound: 'Not bound',
|
||
balance: 'Balance',
|
||
enterNickname: 'Enter new nickname',
|
||
nicknameRequired: 'Nickname cannot be empty',
|
||
saving: 'Saving...',
|
||
nicknameUpdated: 'Nickname updated successfully',
|
||
updateFailed: 'Update failed',
|
||
uploading: 'Uploading...'
|
||
},
|
||
|
||
purchase: {
|
||
title: 'Offers',
|
||
memberCard: 'Member Card',
|
||
coupon: 'Coupon',
|
||
buyNow: 'Buy Now',
|
||
myCards: 'My Cards',
|
||
myCoupons: 'My Coupons',
|
||
cardDescription: 'Card Description',
|
||
couponDescription: 'Coupon Description',
|
||
pleaseSelect: 'Please select a product to purchase',
|
||
noCards: 'No cards available',
|
||
noCoupons: 'No coupons available',
|
||
cardUseInstruction: 'Usage Instructions',
|
||
cardValidityPeriod: 'Validity Period',
|
||
cardRefundPolicy: 'Refund Policy',
|
||
cardUseDescription: 'Membership card takes effect immediately after purchase and can be used at designated locations. Per-use cards are charged by number of uses, time-based cards are charged by duration. Please choose the appropriate card type according to your actual needs.',
|
||
cardValidityDescription: 'Membership card takes effect from the date of purchase, with validity periods varying by card type. Per-use cards expire when all uses are consumed within the validity period, and time-based cards expire when the accumulated usage duration reaches the limit within the validity period.',
|
||
cardRefundDescription: 'Refunds are not supported after purchasing membership cards. Unused portions can continue to be used within the validity period. In case of special circumstances requiring a refund, please contact customer service for processing.',
|
||
couponUseInstruction: 'Usage Instructions',
|
||
couponValidityPeriod: 'Validity Period',
|
||
couponUsageScope: 'Usage Scope',
|
||
couponUseDescription: 'Coupons take effect immediately after purchase and can be used at checkout. Only one coupon can be used per order, and coupons cannot be stacked with other promotional offers.',
|
||
couponValidityDescription: 'Coupons take effect from the date of purchase, please use within the validity period. After expiration, coupons will automatically become invalid and cannot be extended.',
|
||
couponUsageDescription: 'Coupons can be used at designated locations. Please check the coupon details for specific available locations. Some coupons have minimum spending requirements, please pay attention to the usage conditions.'
|
||
},
|
||
|
||
myCard: {
|
||
type: 'Type',
|
||
timesCard: 'Times Card',
|
||
durationCard: 'Duration Card',
|
||
remainingTimes: 'Remaining: ',
|
||
remainingDuration: 'Remaining Duration',
|
||
hours: 'Hours',
|
||
validPeriod: 'Valid Period',
|
||
active: 'Active',
|
||
expired: 'Expired',
|
||
used: 'Used Up',
|
||
position: 'Usage Location',
|
||
price: 'Purchase Price',
|
||
noCards: 'No cards',
|
||
buyNow: 'Buy Now',
|
||
getListFailed: 'Failed to get card list',
|
||
dailyLimit: 'Daily Limit',
|
||
singleTimeLimit: 'Single Use Limit',
|
||
unlimited: 'Unlimited',
|
||
times: 'Times',
|
||
minutes: 'Minutes',
|
||
validWithinDays: 'days valid',
|
||
validFromPurchase: 'Valid from purchase',
|
||
daysValid: 'days',
|
||
currentCycleUsed: 'Current Cycle Used',
|
||
totalCount: 'Total Count',
|
||
expire: 'Expire',
|
||
expiredOn: 'Expired on ',
|
||
renew: 'Renew',
|
||
toUse: 'Use Now',
|
||
onlyForRegionBefore: 'Only for ',
|
||
onlyForRegionAfter: ''
|
||
},
|
||
|
||
myCoupon: {
|
||
available: 'Available',
|
||
used: 'Used',
|
||
expired: 'Expired',
|
||
useNow: 'Use Now',
|
||
usedStatus: 'Used',
|
||
expiredStatus: 'Expired',
|
||
noAvailableCoupons: 'No available coupons',
|
||
noUsedCoupons: 'No used coupons',
|
||
noExpiredCoupons: 'No expired coupons',
|
||
buyNow: 'Buy Now',
|
||
getListFailed: 'Failed to get coupon list',
|
||
onlyForRegionBefore: 'Only for ',
|
||
onlyForRegionAfter: ''
|
||
}
|
||
}
|
||
|
||
|