diff --git a/components/DeviceOrderItemCard.vue b/components/DeviceOrderItemCard.vue index 3319be7..5a37377 100644 --- a/components/DeviceOrderItemCard.vue +++ b/components/DeviceOrderItemCard.vue @@ -15,6 +15,7 @@ :src="order.pictureUrl || order.productImage || '/static/default-product.png'" mode="aspectFill" class="product-image" + lazy-load="true" > {{ order.productName || order.deviceName || '风电者2026新款' }} diff --git a/components/LocationListSheet.vue b/components/LocationListSheet.vue index 0c57b5a..c587cd1 100644 --- a/components/LocationListSheet.vue +++ b/components/LocationListSheet.vue @@ -28,7 +28,7 @@ - + {{ $t('home.noNearbyDevice') }} diff --git a/components/OrderItemCard.vue b/components/OrderItemCard.vue index 3a14f47..63d3cae 100644 --- a/components/OrderItemCard.vue +++ b/components/OrderItemCard.vue @@ -9,7 +9,7 @@ - + {{ $t('order.wxPayScore') }} | @@ -63,16 +63,16 @@ - + {{ $t('order.renting') }} - + {{ usedDurationText }} - + {{ displayAmount }} diff --git a/config/url.js b/config/url.js index 7c6b44d..542c40a 100644 --- a/config/url.js +++ b/config/url.js @@ -1,6 +1,6 @@ // export const URL = "https://my.gxfs123.com/api" //正式服务器-弃用 -export const URL = "https://manager.fdzpower.com/api" //正式服务器 -// export const URL = "https://fansdev.gxfs123.com/api" //测试服务器 +// export const URL = "https://manager.fdzpower.com/api" //正式服务器 +export const URL = "https://fansdev.gxfs123.com/api" //测试服务器 // export const URL = "http://192.168.5.123:8080" //本地调试 // export const URL = "http://127.0.0.1:8080" //本地调试 diff --git a/locale/en-US.js b/locale/en-US.js index 020667f..e6f1764 100644 --- a/locale/en-US.js +++ b/locale/en-US.js @@ -1,851 +1,850 @@ 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', - saveImage: 'Save to Phone', - saveSuccess: 'Saved successfully', - saving: 'Saving...', - saveFailed: 'Save failed', - downloadFailed: 'Download failed' - }, + 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', + saveImage: 'Save to Phone', + saveSuccess: 'Saved successfully', + saving: 'Saving...', + saveFailed: 'Save failed', + downloadFailed: 'Download failed' + }, - nav: { - home: 'Home', - my: 'Me', - orders: 'Orders', - settings: 'Settings', - back: 'Back', - title: 'FengDianZhe' - }, + 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' - }, + app: { + name: 'FengDianZhe', + slogan: 'Fan & Power Bank Rental', + fullName: 'FengDianZhe', + welcome: 'Welcome' + }, - home: { - title: 'FengDianZhe', - nearbyDevices: 'Nearby', - scanToUse: 'Scan', - personalCenter: 'Profile', - useGuide: 'Guide', - buyDevice: 'Custom Powewr', - 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' - }, + home: { + title: 'FengDianZhe', + nearbyDevices: 'Nearby', + scanToUse: 'Scan', + personalCenter: 'Profile', + useGuide: 'Guide', + buyDevice: 'Custom Powewr', + 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' - }, + 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' - }, + 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' - }, + 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', - myDeviceOrders:'Customize 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.', - returnLocationMap: 'Return Location Map', - }, + order: { + myOrders: 'My Orders', + myDeviceOrders: 'Customize 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.', + deviceName: 'Device Name', + 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.', + returnLocationMap: 'Return Location Map', + }, - 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' - }, + 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' - }, + 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' - }, + 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' - }, + 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' - }, + 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.' - }, + 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', - indonesian: 'Bahasa Indonesia', - 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' - }, + settings: { + title: 'Settings', + language: 'Language', + languageSetting: 'Language Setting', + chinese: '简体中文', + english: 'English', + indonesian: 'Bahasa Indonesia', + 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' - }, + 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' - }, + 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', - termsAndConditions: 'Terms & Conditions', - 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"', - - // Terms and Conditions Content - applicableLaw: 'Applicable Law', - applicableLawContent: 'These Terms of Service are governed by the laws of the People\'s Republic of China. By using this service, you agree to be bound by Chinese law. Any disputes arising from this service shall first be resolved through friendly negotiation; if negotiation fails, either party may file a lawsuit with the People\'s Court having jurisdiction over the location of the service provider.', - - paymentMethods: 'Payment Methods', - paymentMethodsContent: 'We support multiple payment methods, including but not limited to: WeChat Pay, Alipay, WeChat Pay Score deposit-free, etc. Users need to complete the payment process before using the service. After successful payment, the system will automatically unlock the device for user access. All payment transactions are conducted through secure encrypted channels to ensure user fund security.', - - refundPolicy: 'Refund Policy', - refundPolicyContent: '1. Deposit Refund: After returning the device, the deposit will be automatically refunded to the original payment account after deducting the corresponding rental fee, expected to arrive within 0-7 business days.\n2. Order Cancellation: Unused orders can be cancelled before use begins, and the deposit will be fully refunded.\n3. Exception Refund: In case of special circumstances such as device failure, users can apply for a refund, which we will process within 3-5 business days after verification.\n4. Membership Cards/Coupons: Purchased membership cards and coupons generally do not support refunds. Please contact customer service for special cases.', - - serviceTerms: 'Service Terms', - serviceTermsContent: 'When using this service, users should comply with the following regulations: 1) Take good care of the rented equipment and do not intentionally damage or privately occupy it; 2) Return the equipment on time to avoid additional charges; 3) Do not use the equipment for illegal purposes; 4) If equipment failure is found, contact customer service promptly. Violation of the above regulations may result in service termination and liability.', - - liabilityLimitation: 'Liability Limitation', - liabilityLimitationContent: 'To the maximum extent permitted by law, we are not liable for any indirect, incidental, special, or consequential damages arising from the use or inability to use this service. Our total liability shall not exceed the fees paid by users for using this service. We are not responsible for service interruptions or delays caused by force majeure, network failures, third-party reasons, etc.', - - disputeResolution: 'Dispute Resolution', - disputeResolutionContent: 'If users have any questions or disputes about the service, please first contact us through customer service channels. We will respond within 24 hours of receiving feedback and negotiate a resolution as soon as possible. If negotiation fails, both parties agree to submit the dispute to the People\'s Court with jurisdiction over the location of the service provider for resolution through litigation. During the dispute resolution period, both parties should continue to perform the undisputed terms of this agreement.' - }, + legal: { + agreement: 'User Agreement', + privacy: 'Privacy Policy', + termsOfService: 'Terms of Service', + termsAndConditions: 'Terms & Conditions', + 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' - }, + // Terms and Conditions Content + applicableLaw: 'Applicable Law', + applicableLawContent: 'These Terms of Service are governed by the laws of the People\'s Republic of China. By using this service, you agree to be bound by Chinese law. Any disputes arising from this service shall first be resolved through friendly negotiation; if negotiation fails, either party may file a lawsuit with the People\'s Court having jurisdiction over the location of the service provider.', - share: { - title: 'FengDianZhe - Shared Fan & Power Bank', - path: '/pages/index/index' - }, + paymentMethods: 'Payment Methods', + paymentMethodsContent: 'We support multiple payment methods, including but not limited to: WeChat Pay, Alipay, WeChat Pay Score deposit-free, etc. Users need to complete the payment process before using the service. After successful payment, the system will automatically unlock the device for user access. All payment transactions are conducted through secure encrypted channels to ensure user fund security.', - error: { - networkError: 'Network connection failed', - serverError: 'Server error', - timeout: 'Request timeout', - unknown: 'Unknown error', - tryAgain: 'Please try again later' - }, + refundPolicy: 'Refund Policy', + refundPolicyContent: '1. Deposit Refund: After returning the device, the deposit will be automatically refunded to the original payment account after deducting the corresponding rental fee, expected to arrive within 0-7 business days.\n2. Order Cancellation: Unused orders can be cancelled before use begins, and the deposit will be fully refunded.\n3. Exception Refund: In case of special circumstances such as device failure, users can apply for a refund, which we will process within 3-5 business days after verification.\n4. Membership Cards/Coupons: Purchased membership cards and coupons generally do not support refunds. Please contact customer service for special cases.', - 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)' - }, + serviceTerms: 'Service Terms', + serviceTermsContent: 'When using this service, users should comply with the following regulations: 1) Take good care of the rented equipment and do not intentionally damage or privately occupy it; 2) Return the equipment on time to avoid additional charges; 3) Do not use the equipment for illegal purposes; 4) If equipment failure is found, contact customer service promptly. Violation of the above regulations may result in service termination and liability.', - unit: { - yuan: 'CNY', - meter: 'm', - km: 'km', - piece: 'pc', - times: 'times' - }, + liabilityLimitation: 'Liability Limitation', + liabilityLimitationContent: 'To the maximum extent permitted by law, we are not liable for any indirect, incidental, special, or consequential damages arising from the use or inability to use this service. Our total liability shall not exceed the fees paid by users for using this service. We are not responsible for service interruptions or delays caused by force majeure, network failures, third-party reasons, etc.', - waiting: { - title: 'Ejecting', - preparing: 'Preparing...', - longTimeNotice: 'Taking too long? Contact staff', - deviceEjecting: 'Ejecting...', - rentFailed: 'Rental failed', - timeout: 'Timeout' - }, + disputeResolution: 'Dispute Resolution', + disputeResolutionContent: 'If users have any questions or disputes about the service, please first contact us through customer service channels. We will respond within 24 hours of receiving feedback and negotiate a resolution as soon as possible. If negotiation fails, both parties agree to submit the dispute to the People\'s Court with jurisdiction over the location of the service provider for resolution through litigation. During the dispute resolution period, both parties should continue to perform the undisputed terms of this agreement.' + }, - 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' - }, + 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' + }, - 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' - }, + share: { + title: 'FengDianZhe - Shared Fan & Power Bank', + path: '/pages/index/index' + }, - 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...' - }, + error: { + networkError: 'Network connection failed', + serverError: 'Server error', + timeout: 'Request timeout', + unknown: 'Unknown error', + tryAgain: 'Please try again later' + }, - 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.' - }, + 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)' + }, - 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: '' - }, + unit: { + yuan: 'CNY', + meter: 'm', + km: 'km', + piece: 'pc', + times: 'times' + }, - myCoupon: { - available: 'Available', - used: 'Used', - expired: 'Expired', - useNow: 'Use Now', - usedStatus: 'Used', - expiredStatus: 'Expired', - refundedStatus:'Refunded', - 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: '' - }, + waiting: { + title: 'Ejecting', + preparing: 'Preparing...', + longTimeNotice: 'Taking too long? Contact staff', + deviceEjecting: 'Ejecting...', + rentFailed: 'Rental failed', + timeout: 'Timeout' + }, - goods: { - title: 'Product Details', - goodsTitle:'Customize Details', - productName: 'FengDianZhe Shared Fan + Power Bank + Hand Warmer Series - Cherry Blossom Pink', - perUnit: '/pc', - buyNow: 'Buy Now', - productDetail: 'Customize Details', - features: { - battery: '8000Ahm', - batteryDesc: 'Large Capacity Battery', - wind: 'Efficient Fan', - temp: 'Smart Temperature', - charge: 'Fast Charging' - }, - description: 'FengDianZhe shared fan, integrating fan, power bank, and hand warmer functions. Equipped with 8000mAh large capacity battery for long-lasting use. Efficient fan design with 3-speed adjustment. Smart temperature control hand warmer, warm in winter and cool in summer. Fast charging technology supports multiple device charging. Cherry blossom pink color, fashionable and beautiful, your best travel companion.', - confirmPurchase: 'Confirm Purchase', - confirmPurchaseContent: 'Confirm to purchase this product for ¥{price}?', - purchaseSuccess: 'Purchase Successful', - purchaseFailed: 'Purchase Failed', - processing: 'Processing...' - } -} + 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', + refundedStatus: 'Refunded', + 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: '' + }, + + goods: { + title: 'Product Details', + goodsTitle: 'Customize Details', + productName: 'FengDianZhe Shared Fan + Power Bank + Hand Warmer Series - Cherry Blossom Pink', + perUnit: '/pc', + buyNow: 'Buy Now', + productDetail: 'Customize Details', + features: { + battery: '8000Ahm', + batteryDesc: 'Large Capacity Battery', + wind: 'Efficient Fan', + temp: 'Smart Temperature', + charge: 'Fast Charging' + }, + description: 'FengDianZhe shared fan, integrating fan, power bank, and hand warmer functions. Equipped with 8000mAh large capacity battery for long-lasting use. Efficient fan design with 3-speed adjustment. Smart temperature control hand warmer, warm in winter and cool in summer. Fast charging technology supports multiple device charging. Cherry blossom pink color, fashionable and beautiful, your best travel companion.', + confirmPurchase: 'Confirm Purchase', + confirmPurchaseContent: 'Confirm to purchase this product for ¥{price}?', + purchaseSuccess: 'Purchase Successful', + purchaseFailed: 'Purchase Failed', + processing: 'Processing...' + } +} \ No newline at end of file diff --git a/locale/id-ID.js b/locale/id-ID.js index 5225837..b242e31 100644 --- a/locale/id-ID.js +++ b/locale/id-ID.js @@ -1,849 +1,850 @@ export default { - common: { - confirm: 'Konfirmasi', - cancel: 'Batal', - and: 'dan', - submit: 'Kirim', - processing: 'Memproses', - submitting: 'Mengirim', - uploading: 'Mengunggah...', - getting: 'Mengambil...', - filling: 'Mengisi...', - save: 'Simpan', - loadFailed: 'Gagal memuat', - invalidUrl: 'Tautan tidak valid', - statusCode: 'Kode Status', - message: 'Pesan', - none: 'Tidak ada', - unexpectedError: 'Kesalahan tidak terduga', - processException: 'Terjadi pengecualian dalam proses', - errorInfo: 'Informasi Kesalahan', - edit: 'Edit', - delete: 'Hapus', - search: 'Cari', - loading: 'Memuat...', - loadingData: 'Mengambil data...', - loadingLocation: 'Mengambil informasi lokasi...', - loadingMap: 'Memuat peta...', - loadingPosition: 'Mengambil informasi lokasi...', - noData: 'Tidak ada data', - success: 'Berhasil', - failed: 'Gagal', - retry: 'Coba lagi', - back: 'Kembali', - next: 'Selanjutnya', - complete: 'Selesai', - more: 'Lebih banyak', - close: 'Tutup', - yes: 'Ya', - no: 'Tidak', - all: 'Semua', - tips: 'Tips', - notice: 'Pemberitahuan', - warning: 'Peringatan', - error: 'Kesalahan', - networkError: 'Kesalahan jaringan', - systemError: 'Kesalahan sistem', - authFailed: 'Autentikasi gagal', - unauthorized: 'Tidak diizinkan', - loginRequired: 'Harap login terlebih dahulu', - operationSuccess: 'Operasi berhasil', - operationFailed: 'Operasi gagal', - sending: 'Mengirim...', - loggingIn: 'Masuk...', - refresh: 'Muat ulang', - pull: 'Tarik untuk muat ulang', - release: 'Lepas untuk muat ulang', - noMore: 'Tidak ada lagi', - functionDeveloping: 'Fungsi sedang dikembangkan', - saveImage: 'Simpan ke Ponsel', - saveSuccess: 'Berhasil disimpan', - saving: 'Menyimpan...', - saveFailed: 'Gagal menyimpan', - downloadFailed: 'Gagal mengunduh' - }, - - nav: { - home: 'Beranda', - my: 'Saya', - orders: 'Pesanan', - settings: 'Pengaturan', - back: 'Kembali', - title: 'Kipas Angin & Power Bank Berbagi FengDianZhe' - }, - - app: { - name: 'FengDianZhe', - slogan: 'Kipas Angin & Power Bank Berbagi', - fullName: 'FengDianZhe - Kipas Angin & Power Bank Berbagi', - welcome: 'Selamat datang menggunakan FengDianZhe' - }, - - home: { - title: 'Kipas Angin & Power Bank Berbagi FengDianZhe', - nearbyDevices: 'Perangkat Terdekat', - scanToUse: 'Pindai untuk Menggunakan', - personalCenter: 'Pusat Pribadi', - useGuide: 'Panduan Penggunaan', - buyDevice: 'Kustomisasi Power Bank', - navigate: 'Navigasi', - relocate: 'Lokasi Ulang', - search: 'Cari', - service: 'Layanan Pelanggan', - searchPlaceholder: 'Cari lokasi terdekat', - nearbyDeviceLocation: 'Lokasi Perangkat Terdekat', - noNearbyDevice: 'Tidak ada perangkat terdekat', - relocating: 'Melokalisasi ulang...', - locateSuccess: 'Lokasi berhasil', - locateFailed: 'Lokasi gagal, harap periksa izin lokasi', - invalidQRCode: 'Kode QR perangkat tidak valid', - scanFailed: 'Pemindaian gagal', - noticeTitle: 'Pemberitahuan', - getLocationFailed: 'Gagal mendapatkan lokasi, menampilkan peta default' - }, - - guide: { - title: 'Panduan Penggunaan', - step1Title: 'Pindai untuk Menggunakan', - step1Desc: 'Temukan perangkat terdekat, pindai kode QR pada perangkat', - step2Title: 'Pembayaran Tanpa Deposit', - step2Desc: 'Tidak perlu membayar deposit, gunakan skor pembayaran tanpa deposit untuk menyelesaikan penyewaan', - step3Title: 'Mulai Menggunakan', - step3Desc: 'Perangkat akan terbuka secara otomatis, ambil kipas angin setelah muncul dan mulai gunakan', - step4Title: 'Kembalikan Perangkat', - step4Desc: 'Setelah selesai digunakan, kembalikan kipas angin sesuai spesifikasi perangkat untuk mengakhiri pesanan' - }, - - location: { - rent: 'Dapat Disewa', - return: 'Dapat Dikembalikan', - navigate: 'Navigasi', - distance: 'Jarak', - businessHours: 'Jam Operasional:', - navigateHere: 'Navigasi ke Sini', - coordinateError: 'Informasi koordinat lokasi ini abnormal', - notExist: 'Lokasi tidak ada', - supportCouponOrMember: 'Dapat menggunakan kupon, kartu anggota' - }, - - device: { - reportError: 'Laporkan Kesalahan Perangkat', - scanToUse: 'Pindai untuk Menggunakan', - deviceInfo: 'Informasi Perangkat', - deviceNo: 'Nomor Perangkat', - location: 'Lokasi', - businessHours: 'Jam Operasional', - pricing: 'Penagihan', - pricingText: 'Rp5/jam, Rp36/24 jam, total ¥899', - getDeviceInfoFailed: 'Gagal mendapatkan informasi perangkat', - available: 'Tersedia', - offline: 'Offline', - pricingRules: 'Aturan Penagihan', - capLimit: 'Maksimum', - usageInstructions: 'Instruksi Penggunaan', - checkBeforeUse: 'Harap periksa apakah perangkat dalam kondisi baik sebelum digunakan', - autoChargeOvertime: 'Melebihi waktu penggunaan akan dikenakan biaya per jam secara otomatis', - useInDesignatedArea: 'Harap gunakan perangkat di area yang ditentukan', - rentDepositFree: 'Sewa Tanpa Deposit', - wxPayScoreDesc: 'Skor Pembayaran WeChat | Nikmati dengan 550 poin atau lebih', - checking: 'Memeriksa', - deviceNoNotRecognized: 'Nomor perangkat tidak dikenali', - processFailed: 'Pemrosesan gagal, harap coba lagi nanti', - sharedFan: 'Kipas Angin Berbagi', - deviceNoRequired: 'Nomor perangkat tidak boleh kosong', - rentFailed: 'Penyewaan perangkat gagal', - rentSuccess: 'Penyewaan berhasil', - rentFailedRetry: 'Penyewaan gagal, harap coba lagi', - getPayParamsFailed: 'Gagal mendapatkan parameter pembayaran', - payScoreFailedCancelled: 'Panggilan skor pembayaran gagal, pesanan telah dibatalkan', - canUsePromotion: 'Tips: Dapat menggunakan kupon, kartu anggota', - goToBuy: 'Beli Sekarang' - }, - - order: { - myOrders: 'Pesanan Saya', - myDeviceOrders: 'Kustomisasi Saya', - noOrderRecord: 'Tidak ada catatan pesanan', - getOrderListFailed: 'Gagal mendapatkan daftar pesanan', - confirmCancelContent: 'Apakah Anda yakin ingin membatalkan pesanan ini?', - orderDetail: 'Detail Pesanan', - orderNo: 'Nomor Pesanan', - orderStatus: 'Status Pesanan', - deviceNo: 'Nomor Perangkat', - rentLocation: 'Lokasi Penyewaan', - rentTime: 'Waktu Penyewaan', - returnTime: 'Waktu Pengembalian', - startTime: 'Waktu Mulai', - endTime: 'Waktu Berakhir', - duration: 'Durasi Penggunaan', - amount: 'Jumlah', - totalAmount: 'Jumlah Total', - payAmount: 'Jumlah Pembayaran', - deposit: 'Deposit', - rentFee: 'Biaya Sewa', - myCards: 'Diskon Kartu Anggota', - myCoupons: 'Diskon Kupon', - payNow: 'Bayar Sekarang', - cancelOrder: 'Batalkan Pesanan', - quickReturn: 'Pengembalian Cepat', - returnDevice: 'Kembalikan Perangkat', - viewDetails: 'Lihat Detail', - orderCompleted: 'Pesanan Selesai', - orderCancelled: 'Pesanan Dibatalkan', - waitingForPayment: 'Menunggu Pembayaran', - inUse: 'Sedang Digunakan', - finished: 'Selesai', - cancelled: 'Dibatalkan', - renting: 'Menyewa', - rentFan: 'Sewa Kipas Angin', - noOrder: 'Tidak ada pesanan yang sedang digunakan', - getOrderFailed: 'Gagal mendapatkan pesanan', - paymentSuccess: 'Pembayaran berhasil', - paymentFailed: 'Pembayaran gagal', - cancelSuccess: 'Pembatalan berhasil', - cancelFailed: 'Pembatalan gagal', - returnSuccess: 'Pengembalian berhasil', - returnFailed: 'Pengembalian gagal', - confirmCancel: 'Konfirmasi membatalkan pesanan?', - confirmReturn: 'Konfirmasi mengembalikan perangkat?', - wxPayScore: 'Skor Pembayaran WeChat', - depositFree: 'Sewa Tanpa Deposit', - whitelistOrder: 'Pesanan Whitelist', - memberOrder: 'Pesanan Anggota', - wxPay: 'Pembayaran WeChat', - depositPay: 'Sewa dengan Deposit', - paymentInProgress: 'Sedang membayar', - paymentFailedRetry: 'Pembayaran gagal, harap bayar lagi', - pleasePaySoon: 'Harap selesaikan pembayaran segera', - pleaseReturnInTime: 'Harap simpan perangkat dengan baik dan kembalikan tepat waktu setelah digunakan', - returnedThankYou: 'Kipas angin Anda telah dikembalikan, terima kasih telah menggunakan', - used: 'Digunakan', - rentInfo: 'Informasi Penyewaan', - fanNo: 'Nomor Kipas Angin', - rentMethod: 'Metode Penyewaan', - returnLocation: 'Lokasi Pengembalian', - paid: 'Dibayar', - canExpressReturn: 'Dapat dikembalikan melalui ekspres', - pauseBilling: 'Jeda Penagihan', - rentAgain: 'Sewa Lagi', - backToHome: 'Kembali ke Beranda', - feeAppeal: 'Banding Biaya', - orderIdRequired: 'ID Pesanan tidak boleh kosong', - refundSuccess: 'Permohonan pengembalian dana berhasil', - refundFailed: 'Permohonan pengembalian dana gagal', - orderNotExist: 'Informasi pesanan tidak ada', - currentFee: 'Biaya Saat Ini', - returnInstructions: 'Instruksi Pengembalian', - ensureDeviceIntact: 'Harap pastikan perangkat dalam kondisi baik', - insertFanBack: 'Masukkan kipas angin ke posisi asli atau soket kosong', - autoDetectReturn: 'Sistem akan secara otomatis mendeteksi pengembalian dan memproses pengembalian dana', - autoJumpAfterReturn: 'Setelah pengembalian berhasil akan otomatis melompat ke halaman sukses', - refreshStatus: 'Muat Ulang Status', - countdown: 'Hitungan Mundur', - pauseAndExpress: 'Jeda penagihan, kembalikan melalui ekspres', - orderInfoMissing: 'Informasi pesanan kurang', - returnSuccessMessage: 'Kipas angin telah dikembalikan dengan sukses, sisa deposit akan dikembalikan ke akun Anda', - noOrderInUse: 'Tidak ditemukan pesanan yang sedang digunakan', - pleaseRefreshManually: 'Harap muat ulang secara manual untuk melihat status pengembalian', - cancelling: 'Membatalkan pesanan', - cancelFailedContactService: 'Pembatalan pesanan gagal, harap hubungi layanan pelanggan', - getOrderStatusFailed: 'Pemeriksaan status pesanan gagal', - syncSuccess: 'Sinkronisasi status berhasil', - syncFailed: 'Sinkronisasi status gagal', - freeRentTime: 'Waktu Gratis', - pricingRule: 'Aturan Penagihan', - paymentMethod: 'Metode Pembayaran', - perHour: 'Per Jam', - perMinute: 'Per Menit', - perHalfHour: 'Per Setengah Jam', - deviceNoEject: 'Power Bank Tidak Muncul', - returnReminder: 'Pengingat Pengembalian', - canUsePromotion: 'Dapat menggunakan kupon, kartu anggota', - usedPromotion: 'Jenis Diskon', - convertToOwn: 'Tidak ingin mengembalikan? Klik untuk mengubah menjadi milik sendiri', - convertToOwnTitle: 'Ubah menjadi Milik Sendiri', - convertToOwnConfirm: 'Hanya perlu membayar ¥99, dapat diubah menjadi milik sendiri, power bank akan menjadi milik Anda, konfirmasi operasi?', - convertToOwnSuccess: 'Berhasil diubah menjadi milik sendiri', - convertToOwnFailed: 'Operasi gagal, harap coba lagi nanti', - convertToOwnConfirmBtn: 'Beli untuk Milik Sendiri', - convertToOwnCancelBtn: 'Lanjutkan Menyewa', - convertToOwnWithMaxFee: 'Tidak ingin mengembalikan? Ubah menjadi milik sendiri', - convertToOwnWithMaxFeeTitle: 'Beli dan Bawa Pulang!', - convertToOwnWithMaxFeeConfirm: 'Karena sudah nyaman digunakan, langsung beli dan bawa pulang! Hanya ¥99, perangkat selamanya milik Anda, tidak perlu dikembalikan~\n✅Mendukung pengisian Type-C, sangat nyaman digunakan di rumah~\n✅Setelah dibeli, tidak ada batasan penggunaan, gunakan sesuka hati!', - convertToOwnWithMaxFeeSuccess: 'Pembelian berhasil', - convertToOwnWithMaxFeeFailed: 'Pembelian gagal, harap coba lagi nanti', - deviceNoEjectTitle: 'Power Bank Tidak Muncul', - deviceNoEjectConfirm: 'Apakah power bank Anda tidak muncul? Kami akan segera menanganinya untuk Anda, diperkirakan akan diselesaikan dalam 5 menit.', - deviceNoEjectSuccess: 'Umpan balik telah diterima, akan diproses dalam 5 menit', - deviceNoEjectFailed: 'Pengiriman umpan balik gagal, harap coba lagi nanti', - returnProblemTip: 'Setelah produk dikembalikan ke gudang, pesanan masih belum berakhir, harap pergi ke', - contactStaff: 'Hubungi staf.', - returnLocationMap: 'Peta Lokasi Pengembalian', - }, - - user: { - clickToLogin: 'Klik untuk Login', - loginPrompt: 'Setelah otorisasi login, Anda dapat melihat pesanan dan aset', - personalCenter: 'Pusat Pribadi', - depositBalance: 'Saldo Deposit', - withdraw: 'Tarik', - commonServices: 'Layanan Umum', - quickReturn: 'Pengembalian Cepat', - quickReturnDesc: '(Langsung lihat pesanan yang sedang digunakan)', - expressReturn: 'Catatan Pengembalian Ekspres', - myOrders: 'Pesanan Saya', - myCards: 'Kartu Anggota Saya', - myCoupons: 'Kupon Saya', - customerService: 'Pusat Layanan Pelanggan', - feedback: 'Keluhan dan Saran', - businessLicense: 'Lisensi Bisnis', - cooperation: 'Kerja Sama dan Keanggotaan', - settings: 'Pengaturan', - userAgreement: '《Perjanjian Pengguna》', - privacyPolicy: '《Kebijakan Privasi》', - version: 'v', - logout: 'Keluar', - confirmLogout: 'Konfirmasi keluar?', - logoutSuccess: 'Keluar berhasil', - getUserInfoFailed: 'Gagal mendapatkan informasi pengguna', - updateSuccess: 'Informasi berhasil diperbarui', - updateFailed: 'Gagal memperbarui informasi pengguna', - avatarUpdated: 'Avatar telah diperbarui', - avatarUploadFailed: 'Gagal memperbarui avatar', - noAvatar: 'Avatar tidak dipilih', - noAvatarUrl: 'Alamat avatar tidak diperoleh', - avatarDownloadFailed: 'Gagal mengunduh avatar', - notLoggedIn: 'Tidak login', - phoneNotBound: 'Nomor telepon tidak terikat', - balanceDesc: 'Dapat digunakan untuk menyewa perangkat', - feedbackRecord: 'Catatan Keluhan' - }, - - auth: { - authTitle: 'Otorisasi Mendapatkan Nomor Telepon', - authDesc: 'Untuk memberikan layanan yang lebih baik dan kontak darurat, perlu otorisasi untuk mendapatkan nomor telepon Anda', - getPhoneNumber: 'Login Cepat Nomor Telepon', - notNow: 'Tidak Sekarang', - authRequired: 'Perlu Otorisasi', - authSuccess: 'Otorisasi berhasil', - authFailed: 'Otorisasi gagal', - loginTitle: 'Login', - loginDesc: 'Untuk memastikan pengalaman penggunaan, harap selesaikan login terlebih dahulu', - getUserInfoSuccess: 'Berhasil mendapatkan informasi pengguna', - getUserInfoFailed: 'Gagal mendapatkan informasi pengguna', - pleaseUseInWechat: 'Harap gunakan fungsi ini di WeChat Mini Program', - agreeToTerms: 'Saya telah membaca dan menyetujui', - pleaseAgreeToTerms: 'Harap baca dan setujui 《Perjanjian Pengguna》 dan 《Kebijakan Privasi》 terlebih dahulu', - loginSuccess: 'Login berhasil', - loginFailed: 'Login gagal', - phoneCancelled: 'Otorisasi nomor telepon dibatalkan', - goToLogin: 'Pergi ke Login', - authDescShort: 'Untuk memberikan layanan yang lebih baik, perlu otorisasi untuk mendapatkan nomor telepon Anda', - phoneRequired: 'Perlu otorisasi nomor telepon untuk menggunakan perangkat', - getting: 'Mengambil...', - phoneSuccess: 'Berhasil mendapatkan nomor telepon', - phoneError: 'Kesalahan mendapatkan nomor telepon', - phoneGetFailed: 'Gagal mendapatkan nomor telepon', - authCodeFailed: 'Gagal mendapatkan kode otorisasi', - phoneLogin: 'Login Nomor Telepon', - phonePlaceholder: 'Harap masukkan nomor telepon', - codePlaceholder: 'Harap masukkan kode verifikasi', - getCode: 'Dapatkan Kode Verifikasi', - resend: 'Kirim Ulang', - loginBtn: 'Login Sekarang', - phoneRequired: 'Harap masukkan nomor telepon', - phoneInvalid: 'Harap masukkan nomor telepon yang benar', - codeRequired: 'Harap masukkan kode verifikasi', - codeSent: 'Kode verifikasi telah dikirim', - sendCodeFailed: 'Gagal mengirim kode verifikasi', - regionNotSupported: 'Pengguna di luar Tiongkok Daratan, Hong Kong, dan Makau harap login melalui otorisasi nomor telepon platform', - onlyMainlandSupported: 'Saat ini hanya mendukung wilayah Tiongkok Daratan', - getServicePhoneFailed: 'Gagal mendapatkan nomor telepon layanan pelanggan', - noAuthToken: 'Login berhasil tetapi tidak mendapatkan token otorisasi' - }, - - permission: { - locationTitle: 'Otorisasi Informasi Lokasi', - locationNeed: 'Perlu mendapatkan informasi lokasi Anda untuk menampilkan perangkat terdekat, harap aktifkan izin lokasi di "Pengaturan-Manajemen Izin".', - locationDenied: 'Lokasi tidak diotorisasi, tidak dapat menampilkan perangkat terdekat. Anda dapat mengaktifkan kembali izin lokasi di "Pengaturan-Manajemen Izin" nanti.', - goToSettings: 'Pergi ke Pengaturan', - later: 'Tidak Sekarang', - gotIt: 'Mengerti' - }, - - payment: { - paymentAmount: 'Jumlah Pembayaran', - paymentMethod: 'Metode Pembayaran', - wechatPay: 'Pembayaran WeChat', - alipay: 'Alipay', - balance: 'Pembayaran Saldo', - payNow: 'Bayar Sekarang', - paying: 'Sedang membayar...', - paymentSuccess: 'Pembayaran berhasil', - paymentFailed: 'Pembayaran gagal', - paymentCancelled: 'Pembayaran dibatalkan', - orderPayment: 'Pembayaran Pesanan', - waitingForPayment: 'Menunggu Pembayaran', - pleasePayIn15Min: 'Harap selesaikan pembayaran dalam 15 menit', - orderInfo: 'Informasi Pesanan', - createTime: 'Waktu Pembuatan', - contactPhone: 'Nomor Telepon Kontak', - feeInfo: 'Informasi Biaya', - deposit: 'Deposit', - package: 'Paket', - total: 'Total', - paymentFailedRetry: 'Pembayaran gagal, harap coba lagi', - createPayOrderFailed: 'Gagal membuat pesanan pembayaran', - subscriptionSuccess: 'Berlangganan berhasil', - subscriptionFailed: 'Berlangganan gagal, harap coba lagi nanti' - }, - - feedback: { - uploading: 'Mengunggah...', - title: 'Keluhan dan Saran', - placeholder: 'Harap jelaskan secara detail masalah yang Anda hadapi, agar kami dapat menyelesaikannya dengan lebih baik', - submit: 'Kirim Umpan Balik', - submitSuccess: 'Umpan balik berhasil', - submitFailed: 'Umpan balik gagal', - contentRequired: 'Harap masukkan konten', - issueType: 'Jenis Masalah', - issueDescription: 'Deskripsi Masalah', - imageUpload: 'Unggah Gambar (Opsional)', - uploadImage: 'Unggah Gambar', - contactInfo: 'Informasi Kontak', - contactPlaceholder: 'Harap tinggalkan nomor telepon Anda, agar kami dapat menghubungi Anda', - pleaseSelectType: 'Harap pilih jenis masalah', - pleaseDescribe: 'Harap jelaskan masalah Anda', - pleaseContact: 'Harap tinggalkan informasi kontak', - imageUploadFailed: 'Gagal mengunggah gambar, harap coba lagi', - deviceFault: 'Kesalahan Perangkat', - chargingIssue: 'Masalah Biaya', - usageSuggestion: 'Saran Penggunaan', - other: 'Lainnya', - recordList: 'Catatan Keluhan', - detail: 'Detail Keluhan', - noRecord: 'Tidak ada catatan keluhan', - getListFailed: 'Gagal mendapatkan daftar', - getDetailFailed: 'Gagal mendapatkan detail', - processing: 'Memproses', - completed: 'Selesai', - pending: 'Menunggu Diproses', - complain: 'Keluhan', - suggestion: 'Saran', - contactPhone: 'Nomor Telepon Kontak', - initialSubmit: 'Pengiriman Pertama', - submitTime: 'Waktu Pengiriman', - uploadedImages: 'Gambar yang Diunggah', - platformReplies: 'Balasan Platform', - userReplies: 'Balasan Pengguna', - platform: 'Layanan Pelanggan Platform', - me: 'Saya', - replyPlaceholder: 'Harap masukkan balasan Anda...', - submitReply: 'Kirim Balasan', - replySuccess: 'Balasan berhasil', - replyFailed: 'Balasan gagal', - pleaseEnterReply: 'Harap masukkan konten balasan', - idRequired: 'ID keluhan tidak boleh kosong', - viewRecords: 'Lihat Catatan', - replyHistory: 'Riwayat Balasan' - }, - - help: { - title: 'Pusat Layanan Pelanggan', - commonQuestions: 'Pertanyaan Umum', - contactUs: 'Hubungi Kami', - phone: 'Telepon', - email: 'Email', - workingHours: 'Jam Kerja', - workingHoursValue: 'Senin hingga Minggu 09:00-22:00', - functionDeveloping: 'Fungsi sedang dikembangkan', - faq1Question: 'Bagaimana cara menyewa kipas angin?', - faq1Answer: 'Klik tombol "Pindai untuk Menyewa" di beranda, gunakan WeChat untuk memindai kode QR pada perangkat, selesaikan pembayaran sesuai petunjuk untuk menggunakan.', - faq2Question: 'Bagaimana tarifnya?', - faq2Answer: 'Produk ini menyewakan kipas angin dalam bentuk sewa tanpa deposit, tidak perlu membayar deposit, metode penagihan spesifik mengikuti petunjuk pemindaian kode QR kabinet lokasi.', - faq3Question: 'Bagaimana cara mengembalikan kipas angin?', - faq3Answer: 'Bawa kipas angin ke titik pengembalian mana pun, klik tombol "Pindai untuk Mengembalikan" di beranda, pindai kode QR titik pengembalian untuk menyelesaikan pengembalian.', - faq4Question: 'Berapa lama deposit akan dikembalikan?', - faq4Answer: 'Setelah perangkat dikembalikan, deposit akan secara otomatis memulai pengembalian dana, diperkirakan akan diterima dalam 0-7 hari kerja.', - faq5Question: 'Apa yang harus dilakukan jika perangkat tidak dapat digunakan secara normal?', - faq5Answer: 'Anda dapat mengirimkan umpan balik kesalahan melalui "Saya-Keluhan dan Saran", atau langsung menghubungi nomor telepon layanan pelanggan untuk menanganinya.' - }, - - settings: { - title: 'Pengaturan', - language: 'Bahasa', - languageSetting: 'Pengaturan Bahasa', - chinese: '简体中文', - english: 'English', - indonesian: 'Bahasa Indonesia', - languageSwitched: 'Bahasa telah diubah, sedang memuat ulang...', - notification: 'Notifikasi', - privacy: 'Privasi', - about: 'Tentang', - clearCache: 'Hapus Cache', - cacheCleared: 'Cache telah dihapus', - logout: 'Keluar', - confirmLogout: 'Konfirmasi keluar?', - logoutSuccess: 'Keluar berhasil' - }, - - express: { - title: 'Pengembalian Ekspres', - addReturn: 'Tambah Pengembalian', - returnRecord: 'Catatan Pengembalian Ekspres', - expressNo: 'Nomor Ekspres', - expressCompany: 'Perusahaan Ekspres', - sendTime: 'Waktu Pengiriman', - receivedTime: 'Waktu Penerimaan', - status: 'Status', - pending: 'Menunggu Diproses', - shipped: 'Telah Dikirim', - received: 'Telah Diterima', - detail: 'Detail', - recipientInfo: 'Informasi Penerima', - recipientName: 'FengDianZhe 18163601305', - recipientAddress: 'Gedung A2, Lantai 623, Taman Sains dan Teknologi Xinchanghaijian, Jalan Lugu, Distrik Yuelu, Changsha, Provinsi Hunan', - copyAllInfo: 'Salin Semua Informasi', - recipient: 'Penerima', - recipientAddressLabel: 'Alamat Penerima', - copySuccess: 'Semua informasi telah disalin', - copyFailed: 'Gagal menyalin', - noReturnRecord: 'Tidak ada catatan pengembalian', - toFill: 'Menunggu Diisi', - userPhone: 'Nomor Telepon Pengguna', - billingPaused: 'Penagihan Dijeda', - completed: 'Selesai', - processing: 'Memproses', - getListFailed: 'Gagal mendapatkan daftar', - loadFailed: 'Gagal memuat', - returnCompleted: 'Pengembalian Selesai', - returnCompletedDesc: 'Ekspres Anda telah berhasil dikembalikan', - processingDesc: 'Sedang memproses permintaan pengembalian Anda', - pendingDesc: 'Menunggu pemrosesan aplikasi pengembalian', - expressInfo: 'Informasi Ekspres', - trackingNo: 'Nomor Pelacakan', - packageType: 'Jenis Paket', - packageWeight: 'Berat Paket', - returnInfo: 'Informasi Pengembalian', - returnAddress: 'Alamat Pengembalian', - returnTime: 'Waktu Pengembalian', - processTime: 'Waktu Pemrosesan', - completeTime: 'Waktu Penyelesaian', - remarkInfo: 'Informasi Catatan', - copyTrackingNo: 'Salin Nomor Pelacakan', - trackingNoCopied: 'Nomor pelacakan telah disalin', - workingHours: 'Senin hingga Minggu 09:00-22:00', - call: 'Hubungi', - returnDetail: 'Detail Pengembalian', - getDetailFailed: 'Gagal mendapatkan detail', - fillExpress: 'Pengembalian Ekspres', - openTime: 'Waktu Mulai', - fillExpressInfo: 'Isi Informasi Pengembalian Ekspres', - contactPhone: 'Nomor Telepon Kontak', - fillTrackingPlaceholder: 'Harap masukkan nomor ekspres yang perlu diisi', - trackingPlaceholder: 'Harap masukkan nomor ekspres (dapat dikosongkan terlebih dahulu)', - confirmFill: 'Konfirmasi Isi', - submitInfo: 'Kirim Informasi', - orderNoMissing: 'Nomor pesanan kurang', - getRecordFailed: 'Gagal mendapatkan catatan', - existingReturnNotice: 'Sudah ada aplikasi pengembalian ekspres, apakah akan pergi untuk mengisi nomor ekspres?', - goToFill: 'Pergi untuk Mengisi', - alreadyHasRecord: 'Sudah ada catatan pengembalian', - pleaseEnterValidPhone: 'Harap isi nomor telepon kontak yang valid', - pleaseEnterTrackingNo: 'Harap isi nomor ekspres', - filling: 'Mengisi...', - fillSuccess: 'Pengisian berhasil', - fillFailed: 'Pengisian gagal', - submitSuccess: 'Pengiriman berhasil', - submitFailed: 'Pengiriman gagal' - }, - - join: { - title: 'Kerja Sama dan Keanggotaan', - cooperationTitle: 'Metode Kerja Sama', - contactUs: 'Hubungi Kami', - phone: 'Nomor Telepon Kontak', - email: 'Email Kontak', - submit: 'Kirim Aplikasi', - name: 'Nama', - contactPhone: 'Informasi Kontak', - city: 'Kota', - intention: 'Niat Kerja Sama', - placeholder: 'Harap jelaskan secara singkat niat kerja sama Anda...', - submitSuccess: 'Pengiriman berhasil, kami akan segera menghubungi Anda', - submitFailed: 'Pengiriman gagal, harap coba lagi nanti', - pageLoadFailed: 'Gagal memuat halaman' - }, - - legal: { - agreement: 'Perjanjian Pengguna', - privacy: 'Kebijakan Privasi', - termsOfService: 'Ketentuan Layanan', - termsAndConditions: 'Syarat & Ketentuan', - lastUpdate: 'Pembaruan Terakhir', - applicableToService: 'Berlaku untuk layanan sewa kipas angin berbagi "FengDianZhe"', - footerNotice: 'Jika ada pertanyaan tentang perjanjian ini, harap pergi ke "Saya-Layanan Pelanggan" untuk konsultasi', - footerNoticePolicy: 'Jika ada pertanyaan tentang kebijakan ini, harap pergi ke "Saya-Layanan Pelanggan" untuk konsultasi', - - // Konten Syarat dan Ketentuan - applicableLaw: 'Hukum yang Berlaku', - applicableLawContent: 'Ketentuan Layanan ini diatur oleh hukum Republik Rakyat Tiongkok. Dengan menggunakan layanan ini, Anda setuju untuk terikat oleh hukum Tiongkok. Setiap perselisihan yang timbul dari layanan ini harus diselesaikan terlebih dahulu melalui negosiasi bersahabat; jika negosiasi gagal, salah satu pihak dapat mengajukan gugatan ke Pengadilan Rakyat yang memiliki yurisdiksi atas lokasi penyedia layanan.', - - paymentMethods: 'Metode Pembayaran', - paymentMethodsContent: 'Kami mendukung berbagai metode pembayaran, termasuk namun tidak terbatas pada: WeChat Pay, Alipay, WeChat Pay Score tanpa deposit, dll. Pengguna perlu menyelesaikan proses pembayaran sebelum menggunakan layanan. Setelah pembayaran berhasil, sistem akan secara otomatis membuka kunci perangkat untuk akses pengguna. Semua transaksi pembayaran dilakukan melalui saluran terenkripsi yang aman untuk memastikan keamanan dana pengguna.', - - refundPolicy: 'Kebijakan Pengembalian Dana', - refundPolicyContent: '1. Pengembalian Deposit: Setelah mengembalikan perangkat, deposit akan secara otomatis dikembalikan ke akun pembayaran asli setelah dikurangi biaya sewa yang sesuai, diperkirakan tiba dalam 0-7 hari kerja.\n2. Pembatalan Pesanan: Pesanan yang tidak digunakan dapat dibatalkan sebelum penggunaan dimulai, dan deposit akan dikembalikan sepenuhnya.\n3. Pengembalian Dana Pengecualian: Dalam kasus keadaan khusus seperti kegagalan perangkat, pengguna dapat mengajukan pengembalian dana, yang akan kami proses dalam 3-5 hari kerja setelah verifikasi.\n4. Kartu Keanggotaan/Kupon: Kartu keanggotaan dan kupon yang dibeli umumnya tidak mendukung pengembalian dana. Silakan hubungi layanan pelanggan untuk kasus khusus.', - - serviceTerms: 'Ketentuan Layanan', - serviceTermsContent: 'Saat menggunakan layanan ini, pengguna harus mematuhi peraturan berikut: 1) Jaga peralatan yang disewa dengan baik dan jangan sengaja merusak atau memilikinya secara pribadi; 2) Kembalikan peralatan tepat waktu untuk menghindari biaya tambahan; 3) Jangan gunakan peralatan untuk tujuan ilegal; 4) Jika ditemukan kegagalan peralatan, hubungi layanan pelanggan segera. Pelanggaran terhadap peraturan di atas dapat mengakibatkan penghentian layanan dan tanggung jawab.', - - liabilityLimitation: 'Batasan Tanggung Jawab', - liabilityLimitationContent: 'Sejauh diizinkan oleh hukum, kami tidak bertanggung jawab atas kerusakan tidak langsung, insidental, khusus, atau konsekuensial yang timbul dari penggunaan atau ketidakmampuan menggunakan layanan ini. Total tanggung jawab kami tidak akan melebihi biaya yang dibayarkan oleh pengguna untuk menggunakan layanan ini. Kami tidak bertanggung jawab atas gangguan atau penundaan layanan yang disebabkan oleh force majeure, kegagalan jaringan, alasan pihak ketiga, dll.', - - disputeResolution: 'Penyelesaian Sengketa', - disputeResolutionContent: 'Jika pengguna memiliki pertanyaan atau perselisihan tentang layanan, silakan hubungi kami terlebih dahulu melalui saluran layanan pelanggan. Kami akan merespons dalam 24 jam setelah menerima umpan balik dan bernegosiasi untuk penyelesaian sesegera mungkin. Jika negosiasi gagal, kedua belah pihak setuju untuk menyerahkan perselisihan ke Pengadilan Rakyat dengan yurisdiksi atas lokasi penyedia layanan untuk penyelesaian melalui litigasi. Selama periode penyelesaian sengketa, kedua belah pihak harus terus melaksanakan ketentuan yang tidak dipersengketakan dari perjanjian ini.' - }, - - search: { - title: 'Cari Perangkat', - placeholder: 'Harap masukkan nama lokasi atau alamat', - history: 'Riwayat Pencarian', - clear: 'Hapus Riwayat', - noResult: 'Tidak ada hasil pencarian', - searching: 'Mencari...', - invalidCoordinate: 'Koordinat lokasi ini tidak valid', - positionInfoError: 'Informasi lokasi abnormal' - }, - - share: { - title: 'FengDianZhe - Kipas Angin & Power Bank Berbagi', - path: '/pages/index/index' - }, - - error: { - networkError: 'Koneksi jaringan gagal', - serverError: 'Kesalahan server', - timeout: 'Permintaan timeout', - unknown: 'Kesalahan tidak diketahui', - tryAgain: 'Harap coba lagi nanti' - }, - - time: { - hour: 'jam', - minute: 'menit', - second: 'detik', - day: 'hari', - week: 'minggu', - month: 'bulan', - year: 'tahun', - justNow: 'Baru saja', - minutesAgo: 'menit yang lalu', - hoursAgo: 'jam yang lalu', - daysAgo: 'hari yang lalu', - yesterday: 'Kemarin', - today: 'Hari ini', - tomorrow: 'Besok', - hours: 'jam', - minutes: 'menit', - halfHours: 'setengah jam' - }, - - unit: { - yuan: 'Yuan', - meter: 'meter', - km: 'kilometer', - piece: 'buah', - times: 'kali' - }, - - waiting: { - title: 'Perangkat Sedang Muncul', - preparing: 'Sedang menyiapkan perangkat untuk Anda', - longTimeNotice: 'Jika tidak muncul dalam waktu lama, harap hubungi staf di lokasi atau coba lagi nanti', - deviceEjecting: 'Perangkat sedang muncul, harap tunggu', - rentFailed: 'Penyewaan perangkat gagal, pesanan telah dibatalkan', - timeout: 'Waktu tunggu habis, harap coba lagi nanti' - }, - - success: { - paymentSuccess: 'Pembayaran berhasil', - paymentSuccessDesc: 'Pesanan Anda telah berhasil dibayar', - orderInfo: 'Informasi Pesanan', - paymentAmount: 'Jumlah Pembayaran', - paymentTime: 'Waktu Pembayaran', - deviceStatus: 'Status Perangkat', - preparingDevice: 'Sedang menyiapkan perangkat Anda, harap tunggu...', - deviceReady: 'Perangkat telah muncul, harap ambil kipas angin Anda', - deviceFailed: 'Gagal mengeluarkan perangkat, harap hubungi layanan pelanggan', - backToHome: 'Kembali ke Beranda', - viewOrder: 'Lihat Pesanan', - returnSuccess: 'Pengembalian berhasil', - returnSuccessDesc: 'Kipas angin Anda telah dikembalikan, biaya telah dipotong dari deposit', - usedTime: 'Durasi Penggunaan', - packageTime: 'Durasi Paket', - extraTime: 'Waktu Tambahan', - returnTime: 'Waktu Pengembalian', - packageFee: 'Biaya Paket', - extraFee: 'Biaya Tambahan', - totalFee: 'Total Biaya', - depositAmount: 'Deposit', - refundAmount: 'Jumlah Pengembalian', - refundStatus: 'Status Pengembalian', - refundNotice: 'Penjelasan Pengembalian Dana', - refundNotice1: 'Jumlah sisa deposit perlu Anda ajukan penarikan secara manual', - refundNotice2: 'Setelah aplikasi penarikan diajukan, akan dikembalikan ke akun pembayaran asli dalam 1-3 hari kerja', - refundNotice3: 'Jika ada pertanyaan, harap hubungi layanan pelanggan', - applyRefund: 'Ajukan Pengembalian Dana', - refundWaiting: 'Menunggu Aplikasi', - refundProcessing: 'Memproses', - refundSuccess: 'Telah Dikembalikan', - refundFailed: 'Pengembalian dana gagal' - }, - - deposit: { - title: 'Manajemen Deposit', - depositBalance: 'Saldo Deposit', - withdraw: 'Tarik', - withdrawRecord: 'Catatan Penarikan', - withdrawAmount: 'Jumlah Penarikan', - withdrawStatus: 'Status Penarikan', - applyWithdraw: 'Ajukan Penarikan', - withdrawSuccess: 'Penarikan berhasil', - withdrawFailed: 'Penarikan gagal', - noBalance: 'Tidak ada saldo yang dapat ditarik', - confirmWithdraw: 'Konfirmasi Penarikan', - withdrawDesc: 'Deposit akan dikembalikan ke jalur asli, diperkirakan akan diterima dalam 0-7 hari kerja', - withdrawing: 'Sedang menarik...', - withdrawSubmitted: 'Aplikasi penarikan telah diajukan', - withdrawNotice: 'Penjelasan Penarikan', - withdrawNotice1: 'Jumlah penarikan akan dikembalikan ke akun pembayaran asli', - withdrawNotice2: 'Setelah aplikasi penarikan diajukan, diperkirakan akan diterima dalam 0-7 hari kerja', - withdrawNotice3: 'Jika tidak diterima setelah waktu habis, harap hubungi layanan pelanggan untuk menanganinya', - depositRecord: 'Catatan Deposit', - payRecord: 'Catatan Pembayaran', - refundRecord: 'Catatan Pengembalian', - orderNotReturned: 'Pesanan saat ini belum dikembalikan, harap kembalikan terlebih dahulu sebelum menarik', - alreadyRefunded: 'Deposit telah dikembalikan, tidak perlu menarik ulang', - refundProcessing: 'Pengembalian deposit sedang diproses, harap tunggu dengan sabar' - }, - - userProfile: { - title: 'Informasi Pribadi', - avatar: 'Avatar', - nickname: 'Nama Panggilan', - phone: 'Nomor Telepon', - edit: 'Edit', - save: 'Simpan', - cancel: 'Batal', - clickToChange: 'Klik avatar untuk mengubah', - notSet: 'Tidak diatur', - notBound: 'Tidak terikat', - balance: 'Saldo', - enterNickname: 'Harap masukkan nama panggilan baru', - nicknameRequired: 'Nama panggilan tidak boleh kosong', - saving: 'Menyimpan...', - nicknameUpdated: 'Nama panggilan berhasil diubah', - updateFailed: 'Gagal mengubah', - uploading: 'Mengunggah...' - }, - - purchase: { - title: 'Area Diskon', - memberCard: 'Kartu Anggota', - coupon: 'Kupon', - buyNow: 'Beli Sekarang', - myCards: 'Kartu Anggota Saya', - myCoupons: 'Kupon Saya', - cardDescription: 'Penjelasan Kartu Anggota', - couponDescription: 'Penjelasan Kupon', - pleaseSelect: 'Harap pilih produk yang ingin dibeli', - noCards: 'Tidak ada kartu anggota yang tersedia', - noCoupons: 'Tidak ada kupon yang tersedia', - cardUseInstruction: 'Instruksi Penggunaan', - cardValidityPeriod: 'Periode Validitas', - cardRefundPolicy: 'Penjelasan Pengembalian Dana', - cardUseDescription: 'Kartu anggota berlaku segera setelah pembelian dan dapat digunakan di lokasi yang ditentukan. Kartu kali dihitung berdasarkan jumlah penggunaan, kartu durasi dihitung berdasarkan durasi penggunaan, harap pilih jenis kartu yang sesuai dengan kebutuhan aktual Anda.', - cardValidityDescription: 'Kartu anggota berlaku sejak tanggal pembelian, periode validitas berbeda sesuai dengan jenis kartu. Kartu kali akan kedaluwarsa setelah digunakan dalam periode validitas, kartu durasi akan kedaluwarsa setelah durasi penggunaan kumulatif tercapai dalam periode validitas.', - cardRefundDescription: 'Kartu anggota tidak mendukung pengembalian dana setelah pembelian, bagian yang tidak digunakan dapat terus digunakan dalam periode validitas. Jika perlu pengembalian dana dalam situasi khusus, harap hubungi layanan pelanggan untuk menanganinya.', - couponUseInstruction: 'Instruksi Penggunaan', - couponValidityPeriod: 'Periode Validitas', - couponUsageScope: 'Cakupan Penggunaan', - couponUseDescription: 'Kupon berlaku segera setelah pembelian dan dapat digunakan saat penyelesaian pesanan. Setiap pesanan hanya dapat menggunakan satu kupon, kupon tidak dapat digunakan bersamaan dengan aktivitas diskon lainnya.', - couponValidityDescription: 'Kupon berlaku sejak tanggal pembelian, harap gunakan dalam periode validitas. Setelah kedaluwarsa, kupon akan otomatis tidak berlaku dan tidak dapat diperpanjang.', - couponUsageDescription: 'Kupon dapat digunakan di lokasi yang ditentukan, untuk lokasi yang tersedia harap lihat detail kupon. Beberapa kupon memiliki persyaratan minimum konsumsi, harap perhatikan kondisi penggunaan.' - }, - - myCard: { - type: 'Jenis', - timesCard: 'Kartu Kali', - durationCard: 'Kartu Durasi', - remainingTimes: 'Sisa Kali:', - remainingDuration: 'Sisa Durasi', - hours: 'jam', - validPeriod: 'Periode Validitas', - active: 'Sedang Digunakan', - expired: 'Tidak Berlaku', - used: 'Habis', - position: 'Lokasi Penggunaan', - price: 'Harga Pembelian', - noCards: 'Tidak ada kartu anggota', - buyNow: 'Beli Sekarang', - getListFailed: 'Gagal mendapatkan daftar kartu anggota', - dailyLimit: 'Batas Harian', - singleTimeLimit: 'Batas Waktu Per Kali', - unlimited: 'Tidak Terbatas', - times: 'kali', - minutes: 'menit', - validWithinDays: 'hari berlaku', - validFromPurchase: 'Dari waktu pembelian', - daysValid: 'hari berlaku', - currentCycleUsed: 'Digunakan dalam siklus ini', - totalCount: 'Total Kali', - expire: 'Kedaluwarsa', - expiredOn: 'Kedaluwarsa pada', - renew: 'Perpanjang Kartu', - toUse: 'Gunakan', - onlyForRegionBefore: 'Hanya untuk', - onlyForRegionAfter: 'menggunakan' - }, - - myCoupon: { - available: 'Tersedia', - used: 'Digunakan', - expired: 'Kedaluwarsa', - useNow: 'Gunakan', - usedStatus: 'Digunakan', - expiredStatus: 'Kedaluwarsa', - refundedStatus: 'Telah Dikembalikan', - noAvailableCoupons: 'Tidak ada kupon yang tersedia', - noUsedCoupons: 'Tidak ada kupon yang telah digunakan', - noExpiredCoupons: 'Tidak ada kupon yang kedaluwarsa', - buyNow: 'Beli Sekarang', - getListFailed: 'Gagal mendapatkan daftar kupon', - onlyForRegionBefore: 'Hanya untuk', - onlyForRegionAfter: 'menggunakan' - }, - - goods: { - title: 'Detail Produk', - goodsTitle: 'Detail Kustomisasi', - productName: 'FengDianZhe Kipas Angin Berbagi + Power Bank + Seri Hand Warmer - Pink Sakura', - perUnit: '/buah', - buyNow: 'Beli Sekarang', - productDetail: 'Detail Kustomisasi', - features: { - battery: '8000Ahm', - batteryDesc: 'Baterai Kapasitas Besar', - wind: 'Kipas Angin Efisien', - temp: 'Kontrol Suhu Pintar', - charge: 'Pengisian Cepat' - }, - description: 'FengDianZhe kipas angin berbagi, mengintegrasikan tiga fungsi dalam satu: kipas angin, power bank, dan hand warmer. Menggunakan baterai kapasitas besar 8000mAh, daya tahan lama. Desain kipas angin efisien, tiga tingkat angin dapat disesuaikan. Hand warmer kontrol suhu pintar, hangat di musim dingin dan sejuk di musim panas. Teknologi pengisian cepat, mendukung pengisian multi-perangkat. Warna pink sakura, modis dan indah, adalah teman perjalanan terbaik Anda.', - confirmPurchase: 'Konfirmasi Pembelian', - confirmPurchaseContent: 'Konfirmasi membeli produk ini, perlu membayar ¥{price}?', - purchaseSuccess: 'Pembelian berhasil', - purchaseFailed: 'Pembelian gagal', - processing: 'Sedang memproses...' - } - } \ No newline at end of file + common: { + confirm: 'Konfirmasi', + cancel: 'Batal', + and: 'dan', + submit: 'Kirim', + processing: 'Memproses', + submitting: 'Mengirim', + uploading: 'Mengunggah...', + getting: 'Mengambil...', + filling: 'Mengisi...', + save: 'Simpan', + loadFailed: 'Gagal memuat', + invalidUrl: 'Tautan tidak valid', + statusCode: 'Kode Status', + message: 'Pesan', + none: 'Tidak ada', + unexpectedError: 'Kesalahan tidak terduga', + processException: 'Terjadi pengecualian dalam proses', + errorInfo: 'Informasi Kesalahan', + edit: 'Edit', + delete: 'Hapus', + search: 'Cari', + loading: 'Memuat...', + loadingData: 'Mengambil data...', + loadingLocation: 'Mengambil informasi lokasi...', + loadingMap: 'Memuat peta...', + loadingPosition: 'Mengambil informasi lokasi...', + noData: 'Tidak ada data', + success: 'Berhasil', + failed: 'Gagal', + retry: 'Coba lagi', + back: 'Kembali', + next: 'Selanjutnya', + complete: 'Selesai', + more: 'Lebih banyak', + close: 'Tutup', + yes: 'Ya', + no: 'Tidak', + all: 'Semua', + tips: 'Tips', + notice: 'Pemberitahuan', + warning: 'Peringatan', + error: 'Kesalahan', + networkError: 'Kesalahan jaringan', + systemError: 'Kesalahan sistem', + authFailed: 'Autentikasi gagal', + unauthorized: 'Tidak diizinkan', + loginRequired: 'Harap login terlebih dahulu', + operationSuccess: 'Operasi berhasil', + operationFailed: 'Operasi gagal', + sending: 'Mengirim...', + loggingIn: 'Masuk...', + refresh: 'Muat ulang', + pull: 'Tarik untuk muat ulang', + release: 'Lepas untuk muat ulang', + noMore: 'Tidak ada lagi', + functionDeveloping: 'Fungsi sedang dikembangkan', + saveImage: 'Simpan ke Ponsel', + saveSuccess: 'Berhasil disimpan', + saving: 'Menyimpan...', + saveFailed: 'Gagal menyimpan', + downloadFailed: 'Gagal mengunduh' + }, + + nav: { + home: 'Beranda', + my: 'Saya', + orders: 'Pesanan', + settings: 'Pengaturan', + back: 'Kembali', + title: 'Kipas Angin & Power Bank Berbagi FengDianZhe' + }, + + app: { + name: 'FengDianZhe', + slogan: 'Kipas Angin & Power Bank Berbagi', + fullName: 'FengDianZhe - Kipas Angin & Power Bank Berbagi', + welcome: 'Selamat datang menggunakan FengDianZhe' + }, + + home: { + title: 'Kipas Angin & Power Bank Berbagi FengDianZhe', + nearbyDevices: 'Perangkat Terdekat', + scanToUse: 'Pindai untuk Menggunakan', + personalCenter: 'Pusat Pribadi', + useGuide: 'Panduan Penggunaan', + buyDevice: 'Kustomisasi Power Bank', + navigate: 'Navigasi', + relocate: 'Lokasi Ulang', + search: 'Cari', + service: 'Layanan Pelanggan', + searchPlaceholder: 'Cari lokasi terdekat', + nearbyDeviceLocation: 'Lokasi Perangkat Terdekat', + noNearbyDevice: 'Tidak ada perangkat terdekat', + relocating: 'Melokalisasi ulang...', + locateSuccess: 'Lokasi berhasil', + locateFailed: 'Lokasi gagal, harap periksa izin lokasi', + invalidQRCode: 'Kode QR perangkat tidak valid', + scanFailed: 'Pemindaian gagal', + noticeTitle: 'Pemberitahuan', + getLocationFailed: 'Gagal mendapatkan lokasi, menampilkan peta default' + }, + + guide: { + title: 'Panduan Penggunaan', + step1Title: 'Pindai untuk Menggunakan', + step1Desc: 'Temukan perangkat terdekat, pindai kode QR pada perangkat', + step2Title: 'Pembayaran Tanpa Deposit', + step2Desc: 'Tidak perlu membayar deposit, gunakan skor pembayaran tanpa deposit untuk menyelesaikan penyewaan', + step3Title: 'Mulai Menggunakan', + step3Desc: 'Perangkat akan terbuka secara otomatis, ambil kipas angin setelah muncul dan mulai gunakan', + step4Title: 'Kembalikan Perangkat', + step4Desc: 'Setelah selesai digunakan, kembalikan kipas angin sesuai spesifikasi perangkat untuk mengakhiri pesanan' + }, + + location: { + rent: 'Dapat Disewa', + return: 'Dapat Dikembalikan', + navigate: 'Navigasi', + distance: 'Jarak', + businessHours: 'Jam Operasional:', + navigateHere: 'Navigasi ke Sini', + coordinateError: 'Informasi koordinat lokasi ini abnormal', + notExist: 'Lokasi tidak ada', + supportCouponOrMember: 'Dapat menggunakan kupon, kartu anggota' + }, + + device: { + reportError: 'Laporkan Kesalahan Perangkat', + scanToUse: 'Pindai untuk Menggunakan', + deviceInfo: 'Informasi Perangkat', + deviceNo: 'Nomor Perangkat', + deviceName: 'Nama perangkat', + location: 'Lokasi', + businessHours: 'Jam Operasional', + pricing: 'Penagihan', + pricingText: 'Rp5/jam, Rp36/24 jam, total ¥899', + getDeviceInfoFailed: 'Gagal mendapatkan informasi perangkat', + available: 'Tersedia', + offline: 'Offline', + pricingRules: 'Aturan Penagihan', + capLimit: 'Maksimum', + usageInstructions: 'Instruksi Penggunaan', + checkBeforeUse: 'Harap periksa apakah perangkat dalam kondisi baik sebelum digunakan', + autoChargeOvertime: 'Melebihi waktu penggunaan akan dikenakan biaya per jam secara otomatis', + useInDesignatedArea: 'Harap gunakan perangkat di area yang ditentukan', + rentDepositFree: 'Sewa Tanpa Deposit', + wxPayScoreDesc: 'Skor Pembayaran WeChat | Nikmati dengan 550 poin atau lebih', + checking: 'Memeriksa', + deviceNoNotRecognized: 'Nomor perangkat tidak dikenali', + processFailed: 'Pemrosesan gagal, harap coba lagi nanti', + sharedFan: 'Kipas Angin Berbagi', + deviceNoRequired: 'Nomor perangkat tidak boleh kosong', + rentFailed: 'Penyewaan perangkat gagal', + rentSuccess: 'Penyewaan berhasil', + rentFailedRetry: 'Penyewaan gagal, harap coba lagi', + getPayParamsFailed: 'Gagal mendapatkan parameter pembayaran', + payScoreFailedCancelled: 'Panggilan skor pembayaran gagal, pesanan telah dibatalkan', + canUsePromotion: 'Tips: Dapat menggunakan kupon, kartu anggota', + goToBuy: 'Beli Sekarang' + }, + + order: { + myOrders: 'Pesanan Saya', + myDeviceOrders: 'Kustomisasi Saya', + noOrderRecord: 'Tidak ada catatan pesanan', + getOrderListFailed: 'Gagal mendapatkan daftar pesanan', + confirmCancelContent: 'Apakah Anda yakin ingin membatalkan pesanan ini?', + orderDetail: 'Detail Pesanan', + orderNo: 'Nomor Pesanan', + orderStatus: 'Status Pesanan', + deviceNo: 'Nomor Perangkat', + rentLocation: 'Lokasi Penyewaan', + rentTime: 'Waktu Penyewaan', + returnTime: 'Waktu Pengembalian', + startTime: 'Waktu Mulai', + endTime: 'Waktu Berakhir', + duration: 'Durasi Penggunaan', + amount: 'Jumlah', + totalAmount: 'Jumlah Total', + payAmount: 'Jumlah Pembayaran', + deposit: 'Deposit', + rentFee: 'Biaya Sewa', + myCards: 'Diskon Kartu Anggota', + myCoupons: 'Diskon Kupon', + payNow: 'Bayar Sekarang', + cancelOrder: 'Batalkan Pesanan', + quickReturn: 'Pengembalian Cepat', + returnDevice: 'Kembalikan Perangkat', + viewDetails: 'Lihat Detail', + orderCompleted: 'Pesanan Selesai', + orderCancelled: 'Pesanan Dibatalkan', + waitingForPayment: 'Menunggu Pembayaran', + inUse: 'Sedang Digunakan', + finished: 'Selesai', + cancelled: 'Dibatalkan', + renting: 'Menyewa', + rentFan: 'Sewa Kipas Angin', + noOrder: 'Tidak ada pesanan yang sedang digunakan', + getOrderFailed: 'Gagal mendapatkan pesanan', + paymentSuccess: 'Pembayaran berhasil', + paymentFailed: 'Pembayaran gagal', + cancelSuccess: 'Pembatalan berhasil', + cancelFailed: 'Pembatalan gagal', + returnSuccess: 'Pengembalian berhasil', + returnFailed: 'Pengembalian gagal', + confirmCancel: 'Konfirmasi membatalkan pesanan?', + confirmReturn: 'Konfirmasi mengembalikan perangkat?', + wxPayScore: 'Skor Pembayaran WeChat', + depositFree: 'Sewa Tanpa Deposit', + whitelistOrder: 'Pesanan Whitelist', + memberOrder: 'Pesanan Anggota', + wxPay: 'Pembayaran WeChat', + depositPay: 'Sewa dengan Deposit', + paymentInProgress: 'Sedang membayar', + paymentFailedRetry: 'Pembayaran gagal, harap bayar lagi', + pleasePaySoon: 'Harap selesaikan pembayaran segera', + pleaseReturnInTime: 'Harap simpan perangkat dengan baik dan kembalikan tepat waktu setelah digunakan', + returnedThankYou: 'Kipas angin Anda telah dikembalikan, terima kasih telah menggunakan', + used: 'Digunakan', + rentInfo: 'Informasi Penyewaan', + fanNo: 'Nomor Kipas Angin', + rentMethod: 'Metode Penyewaan', + returnLocation: 'Lokasi Pengembalian', + paid: 'Dibayar', + canExpressReturn: 'Dapat dikembalikan melalui ekspres', + pauseBilling: 'Jeda Penagihan', + rentAgain: 'Sewa Lagi', + backToHome: 'Kembali ke Beranda', + feeAppeal: 'Banding Biaya', + orderIdRequired: 'ID Pesanan tidak boleh kosong', + refundSuccess: 'Permohonan pengembalian dana berhasil', + refundFailed: 'Permohonan pengembalian dana gagal', + orderNotExist: 'Informasi pesanan tidak ada', + currentFee: 'Biaya Saat Ini', + returnInstructions: 'Instruksi Pengembalian', + ensureDeviceIntact: 'Harap pastikan perangkat dalam kondisi baik', + insertFanBack: 'Masukkan kipas angin ke posisi asli atau soket kosong', + autoDetectReturn: 'Sistem akan secara otomatis mendeteksi pengembalian dan memproses pengembalian dana', + autoJumpAfterReturn: 'Setelah pengembalian berhasil akan otomatis melompat ke halaman sukses', + refreshStatus: 'Muat Ulang Status', + countdown: 'Hitungan Mundur', + pauseAndExpress: 'Jeda penagihan, kembalikan melalui ekspres', + orderInfoMissing: 'Informasi pesanan kurang', + returnSuccessMessage: 'Kipas angin telah dikembalikan dengan sukses, sisa deposit akan dikembalikan ke akun Anda', + noOrderInUse: 'Tidak ditemukan pesanan yang sedang digunakan', + pleaseRefreshManually: 'Harap muat ulang secara manual untuk melihat status pengembalian', + cancelling: 'Membatalkan pesanan', + cancelFailedContactService: 'Pembatalan pesanan gagal, harap hubungi layanan pelanggan', + getOrderStatusFailed: 'Pemeriksaan status pesanan gagal', + syncSuccess: 'Sinkronisasi status berhasil', + syncFailed: 'Sinkronisasi status gagal', + freeRentTime: 'Waktu Gratis', + pricingRule: 'Aturan Penagihan', + paymentMethod: 'Metode Pembayaran', + perHour: 'Per Jam', + perMinute: 'Per Menit', + perHalfHour: 'Per Setengah Jam', + deviceNoEject: 'Power Bank Tidak Muncul', + returnReminder: 'Pengingat Pengembalian', + canUsePromotion: 'Dapat menggunakan kupon, kartu anggota', + usedPromotion: 'Jenis Diskon', + convertToOwn: 'Tidak ingin mengembalikan? Klik untuk mengubah menjadi milik sendiri', + convertToOwnTitle: 'Ubah menjadi Milik Sendiri', + convertToOwnConfirm: 'Hanya perlu membayar ¥99, dapat diubah menjadi milik sendiri, power bank akan menjadi milik Anda, konfirmasi operasi?', + convertToOwnSuccess: 'Berhasil diubah menjadi milik sendiri', + convertToOwnFailed: 'Operasi gagal, harap coba lagi nanti', + convertToOwnConfirmBtn: 'Beli untuk Milik Sendiri', + convertToOwnCancelBtn: 'Lanjutkan Menyewa', + convertToOwnWithMaxFee: 'Tidak ingin mengembalikan? Ubah menjadi milik sendiri', + convertToOwnWithMaxFeeTitle: 'Beli dan Bawa Pulang!', + convertToOwnWithMaxFeeConfirm: 'Karena sudah nyaman digunakan, langsung beli dan bawa pulang! Hanya ¥99, perangkat selamanya milik Anda, tidak perlu dikembalikan~\n✅Mendukung pengisian Type-C, sangat nyaman digunakan di rumah~\n✅Setelah dibeli, tidak ada batasan penggunaan, gunakan sesuka hati!', + convertToOwnWithMaxFeeSuccess: 'Pembelian berhasil', + convertToOwnWithMaxFeeFailed: 'Pembelian gagal, harap coba lagi nanti', + deviceNoEjectTitle: 'Power Bank Tidak Muncul', + deviceNoEjectConfirm: 'Apakah power bank Anda tidak muncul? Kami akan segera menanganinya untuk Anda, diperkirakan akan diselesaikan dalam 5 menit.', + deviceNoEjectSuccess: 'Umpan balik telah diterima, akan diproses dalam 5 menit', + deviceNoEjectFailed: 'Pengiriman umpan balik gagal, harap coba lagi nanti', + returnProblemTip: 'Setelah produk dikembalikan ke gudang, pesanan masih belum berakhir, harap pergi ke', + contactStaff: 'Hubungi staf.', + returnLocationMap: 'Peta Lokasi Pengembalian', + }, + + user: { + clickToLogin: 'Klik untuk Login', + loginPrompt: 'Setelah otorisasi login, Anda dapat melihat pesanan dan aset', + personalCenter: 'Pusat Pribadi', + depositBalance: 'Saldo Deposit', + withdraw: 'Tarik', + commonServices: 'Layanan Umum', + quickReturn: 'Pengembalian Cepat', + quickReturnDesc: '(Langsung lihat pesanan yang sedang digunakan)', + expressReturn: 'Catatan Pengembalian Ekspres', + myOrders: 'Pesanan Saya', + myCards: 'Kartu Anggota Saya', + myCoupons: 'Kupon Saya', + customerService: 'Pusat Layanan Pelanggan', + feedback: 'Keluhan dan Saran', + businessLicense: 'Lisensi Bisnis', + cooperation: 'Kerja Sama dan Keanggotaan', + settings: 'Pengaturan', + userAgreement: '《Perjanjian Pengguna》', + privacyPolicy: '《Kebijakan Privasi》', + version: 'v', + logout: 'Keluar', + confirmLogout: 'Konfirmasi keluar?', + logoutSuccess: 'Keluar berhasil', + getUserInfoFailed: 'Gagal mendapatkan informasi pengguna', + updateSuccess: 'Informasi berhasil diperbarui', + updateFailed: 'Gagal memperbarui informasi pengguna', + avatarUpdated: 'Avatar telah diperbarui', + avatarUploadFailed: 'Gagal memperbarui avatar', + noAvatar: 'Avatar tidak dipilih', + noAvatarUrl: 'Alamat avatar tidak diperoleh', + avatarDownloadFailed: 'Gagal mengunduh avatar', + notLoggedIn: 'Tidak login', + phoneNotBound: 'Nomor telepon tidak terikat', + balanceDesc: 'Dapat digunakan untuk menyewa perangkat', + feedbackRecord: 'Catatan Keluhan' + }, + + auth: { + authTitle: 'Otorisasi Mendapatkan Nomor Telepon', + authDesc: 'Untuk memberikan layanan yang lebih baik dan kontak darurat, perlu otorisasi untuk mendapatkan nomor telepon Anda', + getPhoneNumber: 'Login Cepat Nomor Telepon', + notNow: 'Tidak Sekarang', + authRequired: 'Perlu Otorisasi', + authSuccess: 'Otorisasi berhasil', + authFailed: 'Otorisasi gagal', + loginTitle: 'Login', + loginDesc: 'Untuk memastikan pengalaman penggunaan, harap selesaikan login terlebih dahulu', + getUserInfoSuccess: 'Berhasil mendapatkan informasi pengguna', + getUserInfoFailed: 'Gagal mendapatkan informasi pengguna', + pleaseUseInWechat: 'Harap gunakan fungsi ini di WeChat Mini Program', + agreeToTerms: 'Saya telah membaca dan menyetujui', + pleaseAgreeToTerms: 'Harap baca dan setujui 《Perjanjian Pengguna》 dan 《Kebijakan Privasi》 terlebih dahulu', + loginSuccess: 'Login berhasil', + loginFailed: 'Login gagal', + phoneCancelled: 'Otorisasi nomor telepon dibatalkan', + goToLogin: 'Pergi ke Login', + authDescShort: 'Untuk memberikan layanan yang lebih baik, perlu otorisasi untuk mendapatkan nomor telepon Anda', + phoneRequired: 'Perlu otorisasi nomor telepon untuk menggunakan perangkat', + getting: 'Mengambil...', + phoneSuccess: 'Berhasil mendapatkan nomor telepon', + phoneError: 'Kesalahan mendapatkan nomor telepon', + phoneGetFailed: 'Gagal mendapatkan nomor telepon', + authCodeFailed: 'Gagal mendapatkan kode otorisasi', + phoneLogin: 'Login Nomor Telepon', + phonePlaceholder: 'Harap masukkan nomor telepon', + codePlaceholder: 'Harap masukkan kode verifikasi', + getCode: 'Dapatkan Kode Verifikasi', + resend: 'Kirim Ulang', + loginBtn: 'Login Sekarang', + phoneRequired: 'Harap masukkan nomor telepon', + phoneInvalid: 'Harap masukkan nomor telepon yang benar', + codeRequired: 'Harap masukkan kode verifikasi', + codeSent: 'Kode verifikasi telah dikirim', + sendCodeFailed: 'Gagal mengirim kode verifikasi', + regionNotSupported: 'Pengguna di luar Tiongkok Daratan, Hong Kong, dan Makau harap login melalui otorisasi nomor telepon platform', + onlyMainlandSupported: 'Saat ini hanya mendukung wilayah Tiongkok Daratan', + getServicePhoneFailed: 'Gagal mendapatkan nomor telepon layanan pelanggan', + noAuthToken: 'Login berhasil tetapi tidak mendapatkan token otorisasi' + }, + + permission: { + locationTitle: 'Otorisasi Informasi Lokasi', + locationNeed: 'Perlu mendapatkan informasi lokasi Anda untuk menampilkan perangkat terdekat, harap aktifkan izin lokasi di "Pengaturan-Manajemen Izin".', + locationDenied: 'Lokasi tidak diotorisasi, tidak dapat menampilkan perangkat terdekat. Anda dapat mengaktifkan kembali izin lokasi di "Pengaturan-Manajemen Izin" nanti.', + goToSettings: 'Pergi ke Pengaturan', + later: 'Tidak Sekarang', + gotIt: 'Mengerti' + }, + + payment: { + paymentAmount: 'Jumlah Pembayaran', + paymentMethod: 'Metode Pembayaran', + wechatPay: 'Pembayaran WeChat', + alipay: 'Alipay', + balance: 'Pembayaran Saldo', + payNow: 'Bayar Sekarang', + paying: 'Sedang membayar...', + paymentSuccess: 'Pembayaran berhasil', + paymentFailed: 'Pembayaran gagal', + paymentCancelled: 'Pembayaran dibatalkan', + orderPayment: 'Pembayaran Pesanan', + waitingForPayment: 'Menunggu Pembayaran', + pleasePayIn15Min: 'Harap selesaikan pembayaran dalam 15 menit', + orderInfo: 'Informasi Pesanan', + createTime: 'Waktu Pembuatan', + contactPhone: 'Nomor Telepon Kontak', + feeInfo: 'Informasi Biaya', + deposit: 'Deposit', + package: 'Paket', + total: 'Total', + paymentFailedRetry: 'Pembayaran gagal, harap coba lagi', + createPayOrderFailed: 'Gagal membuat pesanan pembayaran', + subscriptionSuccess: 'Berlangganan berhasil', + subscriptionFailed: 'Berlangganan gagal, harap coba lagi nanti' + }, + + feedback: { + uploading: 'Mengunggah...', + title: 'Keluhan dan Saran', + placeholder: 'Harap jelaskan secara detail masalah yang Anda hadapi, agar kami dapat menyelesaikannya dengan lebih baik', + submit: 'Kirim Umpan Balik', + submitSuccess: 'Umpan balik berhasil', + submitFailed: 'Umpan balik gagal', + contentRequired: 'Harap masukkan konten', + issueType: 'Jenis Masalah', + issueDescription: 'Deskripsi Masalah', + imageUpload: 'Unggah Gambar (Opsional)', + uploadImage: 'Unggah Gambar', + contactInfo: 'Informasi Kontak', + contactPlaceholder: 'Harap tinggalkan nomor telepon Anda, agar kami dapat menghubungi Anda', + pleaseSelectType: 'Harap pilih jenis masalah', + pleaseDescribe: 'Harap jelaskan masalah Anda', + pleaseContact: 'Harap tinggalkan informasi kontak', + imageUploadFailed: 'Gagal mengunggah gambar, harap coba lagi', + deviceFault: 'Kesalahan Perangkat', + chargingIssue: 'Masalah Biaya', + usageSuggestion: 'Saran Penggunaan', + other: 'Lainnya', + recordList: 'Catatan Keluhan', + detail: 'Detail Keluhan', + noRecord: 'Tidak ada catatan keluhan', + getListFailed: 'Gagal mendapatkan daftar', + getDetailFailed: 'Gagal mendapatkan detail', + processing: 'Memproses', + completed: 'Selesai', + pending: 'Menunggu Diproses', + complain: 'Keluhan', + suggestion: 'Saran', + contactPhone: 'Nomor Telepon Kontak', + initialSubmit: 'Pengiriman Pertama', + submitTime: 'Waktu Pengiriman', + uploadedImages: 'Gambar yang Diunggah', + platformReplies: 'Balasan Platform', + userReplies: 'Balasan Pengguna', + platform: 'Layanan Pelanggan Platform', + me: 'Saya', + replyPlaceholder: 'Harap masukkan balasan Anda...', + submitReply: 'Kirim Balasan', + replySuccess: 'Balasan berhasil', + replyFailed: 'Balasan gagal', + pleaseEnterReply: 'Harap masukkan konten balasan', + idRequired: 'ID keluhan tidak boleh kosong', + viewRecords: 'Lihat Catatan', + replyHistory: 'Riwayat Balasan' + }, + + help: { + title: 'Pusat Layanan Pelanggan', + commonQuestions: 'Pertanyaan Umum', + contactUs: 'Hubungi Kami', + phone: 'Telepon', + email: 'Email', + workingHours: 'Jam Kerja', + workingHoursValue: 'Senin hingga Minggu 09:00-22:00', + functionDeveloping: 'Fungsi sedang dikembangkan', + faq1Question: 'Bagaimana cara menyewa kipas angin?', + faq1Answer: 'Klik tombol "Pindai untuk Menyewa" di beranda, gunakan WeChat untuk memindai kode QR pada perangkat, selesaikan pembayaran sesuai petunjuk untuk menggunakan.', + faq2Question: 'Bagaimana tarifnya?', + faq2Answer: 'Produk ini menyewakan kipas angin dalam bentuk sewa tanpa deposit, tidak perlu membayar deposit, metode penagihan spesifik mengikuti petunjuk pemindaian kode QR kabinet lokasi.', + faq3Question: 'Bagaimana cara mengembalikan kipas angin?', + faq3Answer: 'Bawa kipas angin ke titik pengembalian mana pun, klik tombol "Pindai untuk Mengembalikan" di beranda, pindai kode QR titik pengembalian untuk menyelesaikan pengembalian.', + faq4Question: 'Berapa lama deposit akan dikembalikan?', + faq4Answer: 'Setelah perangkat dikembalikan, deposit akan secara otomatis memulai pengembalian dana, diperkirakan akan diterima dalam 0-7 hari kerja.', + faq5Question: 'Apa yang harus dilakukan jika perangkat tidak dapat digunakan secara normal?', + faq5Answer: 'Anda dapat mengirimkan umpan balik kesalahan melalui "Saya-Keluhan dan Saran", atau langsung menghubungi nomor telepon layanan pelanggan untuk menanganinya.' + }, + + settings: { + title: 'Pengaturan', + language: 'Bahasa', + languageSetting: 'Pengaturan Bahasa', + chinese: '简体中文', + english: 'English', + indonesian: 'Bahasa Indonesia', + languageSwitched: 'Bahasa telah diubah, sedang memuat ulang...', + notification: 'Notifikasi', + privacy: 'Privasi', + about: 'Tentang', + clearCache: 'Hapus Cache', + cacheCleared: 'Cache telah dihapus', + logout: 'Keluar', + confirmLogout: 'Konfirmasi keluar?', + logoutSuccess: 'Keluar berhasil' + }, + + express: { + title: 'Pengembalian Ekspres', + addReturn: 'Tambah Pengembalian', + returnRecord: 'Catatan Pengembalian Ekspres', + expressNo: 'Nomor Ekspres', + expressCompany: 'Perusahaan Ekspres', + sendTime: 'Waktu Pengiriman', + receivedTime: 'Waktu Penerimaan', + status: 'Status', + pending: 'Menunggu Diproses', + shipped: 'Telah Dikirim', + received: 'Telah Diterima', + detail: 'Detail', + recipientInfo: 'Informasi Penerima', + recipientName: 'FengDianZhe 18163601305', + recipientAddress: 'Gedung A2, Lantai 623, Taman Sains dan Teknologi Xinchanghaijian, Jalan Lugu, Distrik Yuelu, Changsha, Provinsi Hunan', + copyAllInfo: 'Salin Semua Informasi', + recipient: 'Penerima', + recipientAddressLabel: 'Alamat Penerima', + copySuccess: 'Semua informasi telah disalin', + copyFailed: 'Gagal menyalin', + noReturnRecord: 'Tidak ada catatan pengembalian', + toFill: 'Menunggu Diisi', + userPhone: 'Nomor Telepon Pengguna', + billingPaused: 'Penagihan Dijeda', + completed: 'Selesai', + processing: 'Memproses', + getListFailed: 'Gagal mendapatkan daftar', + loadFailed: 'Gagal memuat', + returnCompleted: 'Pengembalian Selesai', + returnCompletedDesc: 'Ekspres Anda telah berhasil dikembalikan', + processingDesc: 'Sedang memproses permintaan pengembalian Anda', + pendingDesc: 'Menunggu pemrosesan aplikasi pengembalian', + expressInfo: 'Informasi Ekspres', + trackingNo: 'Nomor Pelacakan', + packageType: 'Jenis Paket', + packageWeight: 'Berat Paket', + returnInfo: 'Informasi Pengembalian', + returnAddress: 'Alamat Pengembalian', + returnTime: 'Waktu Pengembalian', + processTime: 'Waktu Pemrosesan', + completeTime: 'Waktu Penyelesaian', + remarkInfo: 'Informasi Catatan', + copyTrackingNo: 'Salin Nomor Pelacakan', + trackingNoCopied: 'Nomor pelacakan telah disalin', + workingHours: 'Senin hingga Minggu 09:00-22:00', + call: 'Hubungi', + returnDetail: 'Detail Pengembalian', + getDetailFailed: 'Gagal mendapatkan detail', + fillExpress: 'Pengembalian Ekspres', + openTime: 'Waktu Mulai', + fillExpressInfo: 'Isi Informasi Pengembalian Ekspres', + contactPhone: 'Nomor Telepon Kontak', + fillTrackingPlaceholder: 'Harap masukkan nomor ekspres yang perlu diisi', + trackingPlaceholder: 'Harap masukkan nomor ekspres (dapat dikosongkan terlebih dahulu)', + confirmFill: 'Konfirmasi Isi', + submitInfo: 'Kirim Informasi', + orderNoMissing: 'Nomor pesanan kurang', + getRecordFailed: 'Gagal mendapatkan catatan', + existingReturnNotice: 'Sudah ada aplikasi pengembalian ekspres, apakah akan pergi untuk mengisi nomor ekspres?', + goToFill: 'Pergi untuk Mengisi', + alreadyHasRecord: 'Sudah ada catatan pengembalian', + pleaseEnterValidPhone: 'Harap isi nomor telepon kontak yang valid', + pleaseEnterTrackingNo: 'Harap isi nomor ekspres', + filling: 'Mengisi...', + fillSuccess: 'Pengisian berhasil', + fillFailed: 'Pengisian gagal', + submitSuccess: 'Pengiriman berhasil', + submitFailed: 'Pengiriman gagal' + }, + + join: { + title: 'Kerja Sama dan Keanggotaan', + cooperationTitle: 'Metode Kerja Sama', + contactUs: 'Hubungi Kami', + phone: 'Nomor Telepon Kontak', + email: 'Email Kontak', + submit: 'Kirim Aplikasi', + name: 'Nama', + contactPhone: 'Informasi Kontak', + city: 'Kota', + intention: 'Niat Kerja Sama', + placeholder: 'Harap jelaskan secara singkat niat kerja sama Anda...', + submitSuccess: 'Pengiriman berhasil, kami akan segera menghubungi Anda', + submitFailed: 'Pengiriman gagal, harap coba lagi nanti', + pageLoadFailed: 'Gagal memuat halaman' + }, + + legal: { + agreement: 'Perjanjian Pengguna', + privacy: 'Kebijakan Privasi', + termsOfService: 'Ketentuan Layanan', + termsAndConditions: 'Syarat & Ketentuan', + lastUpdate: 'Pembaruan Terakhir', + applicableToService: 'Berlaku untuk layanan sewa kipas angin berbagi "FengDianZhe"', + footerNotice: 'Jika ada pertanyaan tentang perjanjian ini, harap pergi ke "Saya-Layanan Pelanggan" untuk konsultasi', + footerNoticePolicy: 'Jika ada pertanyaan tentang kebijakan ini, harap pergi ke "Saya-Layanan Pelanggan" untuk konsultasi', + + // Konten Syarat dan Ketentuan + applicableLaw: 'Hukum yang Berlaku', + applicableLawContent: 'Ketentuan Layanan ini diatur oleh hukum Republik Rakyat Tiongkok. Dengan menggunakan layanan ini, Anda setuju untuk terikat oleh hukum Tiongkok. Setiap perselisihan yang timbul dari layanan ini harus diselesaikan terlebih dahulu melalui negosiasi bersahabat; jika negosiasi gagal, salah satu pihak dapat mengajukan gugatan ke Pengadilan Rakyat yang memiliki yurisdiksi atas lokasi penyedia layanan.', + + paymentMethods: 'Metode Pembayaran', + paymentMethodsContent: 'Kami mendukung berbagai metode pembayaran, termasuk namun tidak terbatas pada: WeChat Pay, Alipay, WeChat Pay Score tanpa deposit, dll. Pengguna perlu menyelesaikan proses pembayaran sebelum menggunakan layanan. Setelah pembayaran berhasil, sistem akan secara otomatis membuka kunci perangkat untuk akses pengguna. Semua transaksi pembayaran dilakukan melalui saluran terenkripsi yang aman untuk memastikan keamanan dana pengguna.', + + refundPolicy: 'Kebijakan Pengembalian Dana', + refundPolicyContent: '1. Pengembalian Deposit: Setelah mengembalikan perangkat, deposit akan secara otomatis dikembalikan ke akun pembayaran asli setelah dikurangi biaya sewa yang sesuai, diperkirakan tiba dalam 0-7 hari kerja.\n2. Pembatalan Pesanan: Pesanan yang tidak digunakan dapat dibatalkan sebelum penggunaan dimulai, dan deposit akan dikembalikan sepenuhnya.\n3. Pengembalian Dana Pengecualian: Dalam kasus keadaan khusus seperti kegagalan perangkat, pengguna dapat mengajukan pengembalian dana, yang akan kami proses dalam 3-5 hari kerja setelah verifikasi.\n4. Kartu Keanggotaan/Kupon: Kartu keanggotaan dan kupon yang dibeli umumnya tidak mendukung pengembalian dana. Silakan hubungi layanan pelanggan untuk kasus khusus.', + + serviceTerms: 'Ketentuan Layanan', + serviceTermsContent: 'Saat menggunakan layanan ini, pengguna harus mematuhi peraturan berikut: 1) Jaga peralatan yang disewa dengan baik dan jangan sengaja merusak atau memilikinya secara pribadi; 2) Kembalikan peralatan tepat waktu untuk menghindari biaya tambahan; 3) Jangan gunakan peralatan untuk tujuan ilegal; 4) Jika ditemukan kegagalan peralatan, hubungi layanan pelanggan segera. Pelanggaran terhadap peraturan di atas dapat mengakibatkan penghentian layanan dan tanggung jawab.', + + liabilityLimitation: 'Batasan Tanggung Jawab', + liabilityLimitationContent: 'Sejauh diizinkan oleh hukum, kami tidak bertanggung jawab atas kerusakan tidak langsung, insidental, khusus, atau konsekuensial yang timbul dari penggunaan atau ketidakmampuan menggunakan layanan ini. Total tanggung jawab kami tidak akan melebihi biaya yang dibayarkan oleh pengguna untuk menggunakan layanan ini. Kami tidak bertanggung jawab atas gangguan atau penundaan layanan yang disebabkan oleh force majeure, kegagalan jaringan, alasan pihak ketiga, dll.', + + disputeResolution: 'Penyelesaian Sengketa', + disputeResolutionContent: 'Jika pengguna memiliki pertanyaan atau perselisihan tentang layanan, silakan hubungi kami terlebih dahulu melalui saluran layanan pelanggan. Kami akan merespons dalam 24 jam setelah menerima umpan balik dan bernegosiasi untuk penyelesaian sesegera mungkin. Jika negosiasi gagal, kedua belah pihak setuju untuk menyerahkan perselisihan ke Pengadilan Rakyat dengan yurisdiksi atas lokasi penyedia layanan untuk penyelesaian melalui litigasi. Selama periode penyelesaian sengketa, kedua belah pihak harus terus melaksanakan ketentuan yang tidak dipersengketakan dari perjanjian ini.' + }, + + search: { + title: 'Cari Perangkat', + placeholder: 'Harap masukkan nama lokasi atau alamat', + history: 'Riwayat Pencarian', + clear: 'Hapus Riwayat', + noResult: 'Tidak ada hasil pencarian', + searching: 'Mencari...', + invalidCoordinate: 'Koordinat lokasi ini tidak valid', + positionInfoError: 'Informasi lokasi abnormal' + }, + + share: { + title: 'FengDianZhe - Kipas Angin & Power Bank Berbagi', + path: '/pages/index/index' + }, + + error: { + networkError: 'Koneksi jaringan gagal', + serverError: 'Kesalahan server', + timeout: 'Permintaan timeout', + unknown: 'Kesalahan tidak diketahui', + tryAgain: 'Harap coba lagi nanti' + }, + + time: { + hour: 'jam', + minute: 'menit', + second: 'detik', + day: 'hari', + week: 'minggu', + month: 'bulan', + year: 'tahun', + justNow: 'Baru saja', + minutesAgo: 'menit yang lalu', + hoursAgo: 'jam yang lalu', + daysAgo: 'hari yang lalu', + yesterday: 'Kemarin', + today: 'Hari ini', + tomorrow: 'Besok', + hours: 'jam', + minutes: 'menit', + halfHours: 'setengah jam' + }, + + unit: { + yuan: 'Yuan', + meter: 'meter', + km: 'kilometer', + piece: 'buah', + times: 'kali' + }, + + waiting: { + title: 'Perangkat Sedang Muncul', + preparing: 'Sedang menyiapkan perangkat untuk Anda', + longTimeNotice: 'Jika tidak muncul dalam waktu lama, harap hubungi staf di lokasi atau coba lagi nanti', + deviceEjecting: 'Perangkat sedang muncul, harap tunggu', + rentFailed: 'Penyewaan perangkat gagal, pesanan telah dibatalkan', + timeout: 'Waktu tunggu habis, harap coba lagi nanti' + }, + + success: { + paymentSuccess: 'Pembayaran berhasil', + paymentSuccessDesc: 'Pesanan Anda telah berhasil dibayar', + orderInfo: 'Informasi Pesanan', + paymentAmount: 'Jumlah Pembayaran', + paymentTime: 'Waktu Pembayaran', + deviceStatus: 'Status Perangkat', + preparingDevice: 'Sedang menyiapkan perangkat Anda, harap tunggu...', + deviceReady: 'Perangkat telah muncul, harap ambil kipas angin Anda', + deviceFailed: 'Gagal mengeluarkan perangkat, harap hubungi layanan pelanggan', + backToHome: 'Kembali ke Beranda', + viewOrder: 'Lihat Pesanan', + returnSuccess: 'Pengembalian berhasil', + returnSuccessDesc: 'Kipas angin Anda telah dikembalikan, biaya telah dipotong dari deposit', + usedTime: 'Durasi Penggunaan', + packageTime: 'Durasi Paket', + extraTime: 'Waktu Tambahan', + returnTime: 'Waktu Pengembalian', + packageFee: 'Biaya Paket', + extraFee: 'Biaya Tambahan', + totalFee: 'Total Biaya', + depositAmount: 'Deposit', + refundAmount: 'Jumlah Pengembalian', + refundStatus: 'Status Pengembalian', + refundNotice: 'Penjelasan Pengembalian Dana', + refundNotice1: 'Jumlah sisa deposit perlu Anda ajukan penarikan secara manual', + refundNotice2: 'Setelah aplikasi penarikan diajukan, akan dikembalikan ke akun pembayaran asli dalam 1-3 hari kerja', + refundNotice3: 'Jika ada pertanyaan, harap hubungi layanan pelanggan', + applyRefund: 'Ajukan Pengembalian Dana', + refundWaiting: 'Menunggu Aplikasi', + refundProcessing: 'Memproses', + refundSuccess: 'Telah Dikembalikan', + refundFailed: 'Pengembalian dana gagal' + }, + + deposit: { + title: 'Manajemen Deposit', + depositBalance: 'Saldo Deposit', + withdraw: 'Tarik', + withdrawRecord: 'Catatan Penarikan', + withdrawAmount: 'Jumlah Penarikan', + withdrawStatus: 'Status Penarikan', + applyWithdraw: 'Ajukan Penarikan', + withdrawSuccess: 'Penarikan berhasil', + withdrawFailed: 'Penarikan gagal', + noBalance: 'Tidak ada saldo yang dapat ditarik', + confirmWithdraw: 'Konfirmasi Penarikan', + withdrawDesc: 'Deposit akan dikembalikan ke jalur asli, diperkirakan akan diterima dalam 0-7 hari kerja', + withdrawing: 'Sedang menarik...', + withdrawSubmitted: 'Aplikasi penarikan telah diajukan', + withdrawNotice: 'Penjelasan Penarikan', + withdrawNotice1: 'Jumlah penarikan akan dikembalikan ke akun pembayaran asli', + withdrawNotice2: 'Setelah aplikasi penarikan diajukan, diperkirakan akan diterima dalam 0-7 hari kerja', + withdrawNotice3: 'Jika tidak diterima setelah waktu habis, harap hubungi layanan pelanggan untuk menanganinya', + depositRecord: 'Catatan Deposit', + payRecord: 'Catatan Pembayaran', + refundRecord: 'Catatan Pengembalian', + orderNotReturned: 'Pesanan saat ini belum dikembalikan, harap kembalikan terlebih dahulu sebelum menarik', + alreadyRefunded: 'Deposit telah dikembalikan, tidak perlu menarik ulang', + refundProcessing: 'Pengembalian deposit sedang diproses, harap tunggu dengan sabar' + }, + + userProfile: { + title: 'Informasi Pribadi', + avatar: 'Avatar', + nickname: 'Nama Panggilan', + phone: 'Nomor Telepon', + edit: 'Edit', + save: 'Simpan', + cancel: 'Batal', + clickToChange: 'Klik avatar untuk mengubah', + notSet: 'Tidak diatur', + notBound: 'Tidak terikat', + balance: 'Saldo', + enterNickname: 'Harap masukkan nama panggilan baru', + nicknameRequired: 'Nama panggilan tidak boleh kosong', + saving: 'Menyimpan...', + nicknameUpdated: 'Nama panggilan berhasil diubah', + updateFailed: 'Gagal mengubah', + uploading: 'Mengunggah...' + }, + + purchase: { + title: 'Area Diskon', + memberCard: 'Kartu Anggota', + coupon: 'Kupon', + buyNow: 'Beli Sekarang', + myCards: 'Kartu Anggota Saya', + myCoupons: 'Kupon Saya', + cardDescription: 'Penjelasan Kartu Anggota', + couponDescription: 'Penjelasan Kupon', + pleaseSelect: 'Harap pilih produk yang ingin dibeli', + noCards: 'Tidak ada kartu anggota yang tersedia', + noCoupons: 'Tidak ada kupon yang tersedia', + cardUseInstruction: 'Instruksi Penggunaan', + cardValidityPeriod: 'Periode Validitas', + cardRefundPolicy: 'Penjelasan Pengembalian Dana', + cardUseDescription: 'Kartu anggota berlaku segera setelah pembelian dan dapat digunakan di lokasi yang ditentukan. Kartu kali dihitung berdasarkan jumlah penggunaan, kartu durasi dihitung berdasarkan durasi penggunaan, harap pilih jenis kartu yang sesuai dengan kebutuhan aktual Anda.', + cardValidityDescription: 'Kartu anggota berlaku sejak tanggal pembelian, periode validitas berbeda sesuai dengan jenis kartu. Kartu kali akan kedaluwarsa setelah digunakan dalam periode validitas, kartu durasi akan kedaluwarsa setelah durasi penggunaan kumulatif tercapai dalam periode validitas.', + cardRefundDescription: 'Kartu anggota tidak mendukung pengembalian dana setelah pembelian, bagian yang tidak digunakan dapat terus digunakan dalam periode validitas. Jika perlu pengembalian dana dalam situasi khusus, harap hubungi layanan pelanggan untuk menanganinya.', + couponUseInstruction: 'Instruksi Penggunaan', + couponValidityPeriod: 'Periode Validitas', + couponUsageScope: 'Cakupan Penggunaan', + couponUseDescription: 'Kupon berlaku segera setelah pembelian dan dapat digunakan saat penyelesaian pesanan. Setiap pesanan hanya dapat menggunakan satu kupon, kupon tidak dapat digunakan bersamaan dengan aktivitas diskon lainnya.', + couponValidityDescription: 'Kupon berlaku sejak tanggal pembelian, harap gunakan dalam periode validitas. Setelah kedaluwarsa, kupon akan otomatis tidak berlaku dan tidak dapat diperpanjang.', + couponUsageDescription: 'Kupon dapat digunakan di lokasi yang ditentukan, untuk lokasi yang tersedia harap lihat detail kupon. Beberapa kupon memiliki persyaratan minimum konsumsi, harap perhatikan kondisi penggunaan.' + }, + + myCard: { + type: 'Jenis', + timesCard: 'Kartu Kali', + durationCard: 'Kartu Durasi', + remainingTimes: 'Sisa Kali:', + remainingDuration: 'Sisa Durasi', + hours: 'jam', + validPeriod: 'Periode Validitas', + active: 'Sedang Digunakan', + expired: 'Tidak Berlaku', + used: 'Habis', + position: 'Lokasi Penggunaan', + price: 'Harga Pembelian', + noCards: 'Tidak ada kartu anggota', + buyNow: 'Beli Sekarang', + getListFailed: 'Gagal mendapatkan daftar kartu anggota', + dailyLimit: 'Batas Harian', + singleTimeLimit: 'Batas Waktu Per Kali', + unlimited: 'Tidak Terbatas', + times: 'kali', + minutes: 'menit', + validWithinDays: 'hari berlaku', + validFromPurchase: 'Dari waktu pembelian', + daysValid: 'hari berlaku', + currentCycleUsed: 'Digunakan dalam siklus ini', + totalCount: 'Total Kali', + expire: 'Kedaluwarsa', + expiredOn: 'Kedaluwarsa pada', + renew: 'Perpanjang Kartu', + toUse: 'Gunakan', + onlyForRegionBefore: 'Hanya untuk', + onlyForRegionAfter: 'menggunakan' + }, + + myCoupon: { + available: 'Tersedia', + used: 'Digunakan', + expired: 'Kedaluwarsa', + useNow: 'Gunakan', + usedStatus: 'Digunakan', + expiredStatus: 'Kedaluwarsa', + refundedStatus: 'Telah Dikembalikan', + noAvailableCoupons: 'Tidak ada kupon yang tersedia', + noUsedCoupons: 'Tidak ada kupon yang telah digunakan', + noExpiredCoupons: 'Tidak ada kupon yang kedaluwarsa', + buyNow: 'Beli Sekarang', + getListFailed: 'Gagal mendapatkan daftar kupon', + onlyForRegionBefore: 'Hanya untuk', + onlyForRegionAfter: 'menggunakan' + }, + + goods: { + title: 'Detail Produk', + goodsTitle: 'Detail Kustomisasi', + productName: 'FengDianZhe Kipas Angin Berbagi + Power Bank + Seri Hand Warmer - Pink Sakura', + perUnit: '/buah', + buyNow: 'Beli Sekarang', + productDetail: 'Detail Kustomisasi', + features: { + battery: '8000Ahm', + batteryDesc: 'Baterai Kapasitas Besar', + wind: 'Kipas Angin Efisien', + temp: 'Kontrol Suhu Pintar', + charge: 'Pengisian Cepat' + }, + description: 'FengDianZhe kipas angin berbagi, mengintegrasikan tiga fungsi dalam satu: kipas angin, power bank, dan hand warmer. Menggunakan baterai kapasitas besar 8000mAh, daya tahan lama. Desain kipas angin efisien, tiga tingkat angin dapat disesuaikan. Hand warmer kontrol suhu pintar, hangat di musim dingin dan sejuk di musim panas. Teknologi pengisian cepat, mendukung pengisian multi-perangkat. Warna pink sakura, modis dan indah, adalah teman perjalanan terbaik Anda.', + confirmPurchase: 'Konfirmasi Pembelian', + confirmPurchaseContent: 'Konfirmasi membeli produk ini, perlu membayar ¥{price}?', + purchaseSuccess: 'Pembelian berhasil', + purchaseFailed: 'Pembelian gagal', + processing: 'Sedang memproses...' + } +} \ No newline at end of file diff --git a/locale/zh-CN.js b/locale/zh-CN.js index a200878..a88311f 100644 --- a/locale/zh-CN.js +++ b/locale/zh-CN.js @@ -1,850 +1,849 @@ export default { - common: { - confirm: '确定', - cancel: '取消', - and: '和', - submit: '提交', - processing: '处理中', - submitting: '提交中', - uploading: '上传中...', - getting: '获取中...', - filling: '补填中', - save: '保存', - loadFailed: '加载失败', - invalidUrl: '无效的链接', - statusCode: '状态码', - message: '消息', - none: '无', - unexpectedError: '意外错误', - processException: '处理过程发生异常', - errorInfo: '错误信息', - edit: '编辑', - delete: '删除', - search: '搜索', - loading: '加载中...', - loadingData: '正在获取数据...', - loadingLocation: '正在获取位置信息...', - loadingMap: '地图加载中...', - loadingPosition: '正在获取场地信息...', - noData: '暂无数据', - success: '成功', - failed: '失败', - retry: '重试', - back: '返回', - next: '下一步', - complete: '完成', - more: '更多', - close: '关闭', - yes: '是', - no: '否', - all: '全部', - tips: '提示', - notice: '通知', - warning: '警告', - error: '错误', - networkError: '网络错误', - systemError: '系统错误', - authFailed: '认证失败', - unauthorized: '未授权', - loginRequired: '请先登录', - operationSuccess: '操作成功', - operationFailed: '操作失败', - sending: '发送中...', - loggingIn: '登录中...', - refresh: '刷新', - pull: '下拉刷新', - release: '释放刷新', - noMore: '没有更多了', - functionDeveloping: '功能开发中', - saveImage:'保存到手机', - saveSuccess:'保存成功', - saving:'保存中...', - saveFailed:'保存失败' - }, + common: { + confirm: '确定', + cancel: '取消', + and: '和', + submit: '提交', + processing: '处理中', + submitting: '提交中', + uploading: '上传中...', + getting: '获取中...', + filling: '补填中', + save: '保存', + loadFailed: '加载失败', + invalidUrl: '无效的链接', + statusCode: '状态码', + message: '消息', + none: '无', + unexpectedError: '意外错误', + processException: '处理过程发生异常', + errorInfo: '错误信息', + edit: '编辑', + delete: '删除', + search: '搜索', + loading: '加载中...', + loadingData: '正在获取数据...', + loadingLocation: '正在获取位置信息...', + loadingMap: '地图加载中...', + loadingPosition: '正在获取场地信息...', + noData: '暂无数据', + success: '成功', + failed: '失败', + retry: '重试', + back: '返回', + next: '下一步', + complete: '完成', + more: '更多', + close: '关闭', + yes: '是', + no: '否', + all: '全部', + tips: '提示', + notice: '通知', + warning: '警告', + error: '错误', + networkError: '网络错误', + systemError: '系统错误', + authFailed: '认证失败', + unauthorized: '未授权', + loginRequired: '请先登录', + operationSuccess: '操作成功', + operationFailed: '操作失败', + sending: '发送中...', + loggingIn: '登录中...', + refresh: '刷新', + pull: '下拉刷新', + release: '释放刷新', + noMore: '没有更多了', + functionDeveloping: '功能开发中', + saveImage: '保存到手机', + saveSuccess: '保存成功', + saving: '保存中...', + saveFailed: '保存失败' + }, - nav: { - home: '首页', - my: '我的', - orders: '订单', - settings: '设置', - back: '返回', - title: '风电者共享风扇&暖手充电宝' - }, + nav: { + home: '首页', + my: '我的', + orders: '订单', + settings: '设置', + back: '返回', + title: '风电者共享风扇&暖手充电宝' + }, - app: { - name: '风电者', - slogan: '共享风扇暖手充电宝', - fullName: '风电者 - 共享风扇暖手充电宝', - welcome: '欢迎使用风电者' - }, + app: { + name: '风电者', + slogan: '共享风扇暖手充电宝', + fullName: '风电者 - 共享风扇暖手充电宝', + welcome: '欢迎使用风电者' + }, - home: { - title: '风电者共享风扇&暖手充电宝', - nearbyDevices: '附近设备', - scanToUse: '扫码使用', - personalCenter: '个人中心', - useGuide: '使用指南', - buyDevice: '充电宝定制', - navigate: '导航', - relocate: '重新定位', - search: '搜索', - service: '客服', - searchPlaceholder: '搜索附近场地', - nearbyDeviceLocation: '附近设备场地', - noNearbyDevice: '附近暂无设备', - relocating: '重新定位中...', - locateSuccess: '定位成功', - locateFailed: '定位失败,请检查定位权限', - invalidQRCode: '无效的设备二维码', - scanFailed: '扫码失败', - noticeTitle: '通知公告', - getLocationFailed: '获取位置失败,显示默认地图' - }, + home: { + title: '风电者共享风扇&暖手充电宝', + nearbyDevices: '附近设备', + scanToUse: '扫码使用', + personalCenter: '个人中心', + useGuide: '使用指南', + buyDevice: '充电宝定制', + navigate: '导航', + relocate: '重新定位', + search: '搜索', + service: '客服', + searchPlaceholder: '搜索附近场地', + nearbyDeviceLocation: '附近设备场地', + noNearbyDevice: '附近暂无设备', + relocating: '重新定位中...', + locateSuccess: '定位成功', + locateFailed: '定位失败,请检查定位权限', + invalidQRCode: '无效的设备二维码', + scanFailed: '扫码失败', + noticeTitle: '通知公告', + getLocationFailed: '获取位置失败,显示默认地图' + }, - guide: { - title: '使用指南', - step1Title: '扫码使用', - step1Desc: '找到附近设备,扫描设备上的二维码', - step2Title: '免押金支付', - step2Desc: '无需支付押金,使用支付分免押即可完成租借', - step3Title: '开始使用', - step3Desc: '设备自动解锁,风扇弹出后取出即可开始使用', - step4Title: '归还设备', - step4Desc: '使用完毕后,按照设备规格要求将风扇还入即可结束订单' - }, + guide: { + title: '使用指南', + step1Title: '扫码使用', + step1Desc: '找到附近设备,扫描设备上的二维码', + step2Title: '免押金支付', + step2Desc: '无需支付押金,使用支付分免押即可完成租借', + step3Title: '开始使用', + step3Desc: '设备自动解锁,风扇弹出后取出即可开始使用', + step4Title: '归还设备', + step4Desc: '使用完毕后,按照设备规格要求将风扇还入即可结束订单' + }, - location: { - rent: '可租借', - return: '可归还', - navigate: '导航', - distance: '距离', - businessHours: '营业时间:', - navigateHere: '导航去这', - coordinateError: '该场地坐标信息异常', - notExist: '场地不存在', - supportCouponOrMember: '可使用优惠券、会员卡' - }, + location: { + rent: '可租借', + return: '可归还', + navigate: '导航', + distance: '距离', + businessHours: '营业时间:', + navigateHere: '导航去这', + coordinateError: '该场地坐标信息异常', + notExist: '场地不存在', + supportCouponOrMember: '可使用优惠券、会员卡' + }, - device: { - reportError: '设备报错', - scanToUse: '扫码使用', - deviceInfo: '设备信息', - deviceNo: '设备号', - location: '地点', - businessHours: '营业时间', - pricing: '计费', - pricingText: '5元/小时,36元/24小时,总计¥899元', - getDeviceInfoFailed: '获取设备信息失败', - available: '可使用', - offline: '离线', - pricingRules: '计费规则', - capLimit: '元封顶', - usageInstructions: '使用说明', - checkBeforeUse: '请在使用前检查设备是否完好', - autoChargeOvertime: '超出使用时间将自动按小时计费', - useInDesignatedArea: '请在指定区域内使用设备', - rentDepositFree: '免押金租借', - wxPayScoreDesc: '微信支付分 | 550分以上优享', - checking: '检查中', - deviceNoNotRecognized: '未识别到设备编号', - processFailed: '处理失败,请稍后重试', - sharedFan: '共享风扇', - deviceNoRequired: '设备号不能为空', - rentFailed: '设备租借失败', - rentSuccess: '租借成功', - rentFailedRetry: '租借失败,请重试', - getPayParamsFailed: '获取支付参数失败', - payScoreFailedCancelled: '支付分调用失败,订单已取消', - canUsePromotion: '提示:可使用优惠券、会员卡', - goToBuy: '去购买' - }, + device: { + reportError: '设备报错', + scanToUse: '扫码使用', + deviceInfo: '设备信息', + deviceNo: '设备号', + location: '地点', + businessHours: '营业时间', + pricing: '计费', + pricingText: '5元/小时,36元/24小时,总计¥899元', + getDeviceInfoFailed: '获取设备信息失败', + available: '可使用', + offline: '离线', + pricingRules: '计费规则', + capLimit: '元封顶', + usageInstructions: '使用说明', + checkBeforeUse: '请在使用前检查设备是否完好', + autoChargeOvertime: '超出使用时间将自动按小时计费', + useInDesignatedArea: '请在指定区域内使用设备', + rentDepositFree: '免押金租借', + wxPayScoreDesc: '微信支付分 | 550分以上优享', + checking: '检查中', + deviceNoNotRecognized: '未识别到设备编号', + processFailed: '处理失败,请稍后重试', + sharedFan: '共享风扇', + deviceNoRequired: '设备号不能为空', + rentFailed: '设备租借失败', + rentSuccess: '租借成功', + rentFailedRetry: '租借失败,请重试', + getPayParamsFailed: '获取支付参数失败', + payScoreFailedCancelled: '支付分调用失败,订单已取消', + canUsePromotion: '提示:可使用优惠券、会员卡', + goToBuy: '去购买' + }, - order: { - myOrders: '我的订单', - myDeviceOrders: '我的定制', - noOrderRecord: '暂无订单记录', - getOrderListFailed: '获取订单列表失败', - confirmCancelContent: '确定要取消此订单吗?', - orderDetail: '订单详情', - orderNo: '订单号', - orderStatus: '订单状态', - deviceNo: '设备号', - rentLocation: '租借地点', - rentTime: '租借时间', - returnTime: '归还时间', - startTime: '开始时间', - endTime: '结束时间', - duration: '使用时长', - amount: '金额', - totalAmount: '总金额', - payAmount: '支付金额', - deposit: '押金', - rentFee: '租金', - myCards: '会员卡优惠', - myCoupons: '优惠券优惠', - payNow: '立即支付', - cancelOrder: '取消订单', - quickReturn: '附近可归还', - returnDevice: '归还设备', - viewDetails: '查看详情', - orderCompleted: '订单已完成', - orderCancelled: '订单已取消', - waitingForPayment: '待支付', - inUse: '使用中', - finished: '已完成', - cancelled: '已取消', - renting: '租借中', - rentFan: '租借风扇', - noOrder: '暂无使用中的订单', - getOrderFailed: '获取订单失败', - paymentSuccess: '支付成功', - paymentFailed: '支付失败', - cancelSuccess: '取消成功', - cancelFailed: '取消失败', - returnSuccess: '归还成功', - returnFailed: '归还失败', - confirmCancel: '确认取消订单?', - confirmReturn: '确认归还设备?', - wxPayScore: '微信支付分', - depositFree: '免押租借', - whitelistOrder: '白名单订单', - memberOrder: '会员订单', - wxPay: '微信支付', - depositPay: '押金租借', - paymentInProgress: '支付中', - paymentFailedRetry: '支付失败,请重新支付', - pleasePaySoon: '请尽快完成支付', - pleaseReturnInTime: '请妥善保管设备,使用完毕后及时归还', - returnedThankYou: '您的风扇已归还,感谢使用', - used: '已使用', - rentInfo: '租借信息', - fanNo: '风扇编号', - rentMethod: '租借方式', - returnLocation: '归还地点', - paid: '已支付', - canExpressReturn: '后可快递归还', - pauseBilling: '暂停计费', - rentAgain: '再次租借', - backToHome: '返回首页', - feeAppeal: '费用申诉', - orderIdRequired: '订单ID不能为空', - refundSuccess: '退款申请成功', - refundFailed: '退款申请失败', - orderNotExist: '订单信息不存在', - currentFee: '当前费用', - returnInstructions: '归还说明', - ensureDeviceIntact: '请确保设备完好无损', - insertFanBack: '将风扇插入原位置或空闲插口', - autoDetectReturn: '系统将自动检测归还并处理退款', - autoJumpAfterReturn: '归还成功后将自动跳转到成功页面', - refreshStatus: '刷新状态', - countdown: '倒计时', - pauseAndExpress: '暂停计费,快递归还', - orderInfoMissing: '缺少订单信息', - returnSuccessMessage: '风扇已归还成功,剩余押金将退还到您的账户', - noOrderInUse: '未找到使用中的订单', - pleaseRefreshManually: '请手动刷新查看归还状态', - cancelling: '取消订单中', - cancelFailedContactService: '取消订单失败,请联系客服', - getOrderStatusFailed: '订单状态查询失败', - syncSuccess: '状态同步成功', - syncFailed: '同步状态失败', - freeRentTime: '免费时长', - pricingRule: '计费规则', - paymentMethod: '支付方式', - perHour: '每小时', - perMinute: '每分钟', - perHalfHour: '每半小时', - deviceNoEject: '宝未弹出', - returnReminder: '归还提醒', - canUsePromotion: '可使用优惠券、会员卡', - usedPromotion: '优惠类型', - convertToOwn: '不想还了?点击转为自用', - convertToOwnTitle: '转为自用', - convertToOwnConfirm: '仅需花费99元,即可转为自用,充电宝将归您所有,确认操作吗?', - convertToOwnSuccess: '已成功转为自用', - convertToOwnFailed: '操作失败,请稍后重试', - convertToOwnConfirmBtn: '买断自用', - convertToOwnCancelBtn: '继续租借', - convertToOwnWithMaxFee: '不想还了?转为自用', - convertToOwnWithMaxFeeTitle: '买断带回家!', - convertToOwnWithMaxFeeConfirm: '既然用得顺手,直接买断带回家!仅需99元,设备永久归你,无需归还~\n✅支持Type-C充电,居家使用超方便~\n✅买断后无任何使用限制,随心用!', - convertToOwnWithMaxFeeSuccess: '买断成功', - convertToOwnWithMaxFeeFailed: '买断失败,请稍后重试', - deviceNoEjectTitle: '充电宝未弹出', - deviceNoEjectConfirm: '您的充电宝未弹出吗?我们将立即为您处理,预计5分钟内解决问题。', - deviceNoEjectSuccess: '反馈已受理,将在5分钟内处理', - deviceNoEjectFailed: '反馈提交失败,请稍后重试', - returnProblemTip: '产品归还入仓后,订单仍未结束,请前往', - contactStaff: '联系工作人员。', - returnLocationMap:'归还点地图', - }, + order: { + myOrders: '我的订单', + myDeviceOrders: '我的定制', + noOrderRecord: '暂无订单记录', + getOrderListFailed: '获取订单列表失败', + confirmCancelContent: '确定要取消此订单吗?', + orderDetail: '订单详情', + orderNo: '订单号', + orderStatus: '订单状态', + deviceNo: '设备号', + deviceName: '设备名称', + rentLocation: '租借地点', + rentTime: '租借时间', + returnTime: '归还时间', + startTime: '开始时间', + endTime: '结束时间', + duration: '使用时长', + amount: '金额', + totalAmount: '总金额', + payAmount: '支付金额', + deposit: '押金', + rentFee: '租金', + myCards: '会员卡优惠', + myCoupons: '优惠券优惠', + payNow: '立即支付', + cancelOrder: '取消订单', + quickReturn: '附近可归还', + returnDevice: '归还设备', + viewDetails: '查看详情', + orderCompleted: '订单已完成', + orderCancelled: '订单已取消', + waitingForPayment: '待支付', + inUse: '使用中', + finished: '已完成', + cancelled: '已取消', + renting: '租借中', + rentFan: '租借风扇', + noOrder: '暂无使用中的订单', + getOrderFailed: '获取订单失败', + paymentSuccess: '支付成功', + paymentFailed: '支付失败', + cancelSuccess: '取消成功', + cancelFailed: '取消失败', + returnSuccess: '归还成功', + returnFailed: '归还失败', + confirmCancel: '确认取消订单?', + confirmReturn: '确认归还设备?', + wxPayScore: '微信支付分', + depositFree: '免押租借', + whitelistOrder: '白名单订单', + memberOrder: '会员订单', + wxPay: '微信支付', + depositPay: '押金租借', + paymentInProgress: '支付中', + paymentFailedRetry: '支付失败,请重新支付', + pleasePaySoon: '请尽快完成支付', + pleaseReturnInTime: '请妥善保管设备,使用完毕后及时归还', + returnedThankYou: '您的风扇已归还,感谢使用', + used: '已使用', + rentInfo: '租借信息', + fanNo: '风扇编号', + rentMethod: '租借方式', + returnLocation: '归还地点', + paid: '已支付', + canExpressReturn: '后可快递归还', + pauseBilling: '暂停计费', + rentAgain: '再次租借', + backToHome: '返回首页', + feeAppeal: '费用申诉', + orderIdRequired: '订单ID不能为空', + refundSuccess: '退款申请成功', + refundFailed: '退款申请失败', + orderNotExist: '订单信息不存在', + currentFee: '当前费用', + returnInstructions: '归还说明', + ensureDeviceIntact: '请确保设备完好无损', + insertFanBack: '将风扇插入原位置或空闲插口', + autoDetectReturn: '系统将自动检测归还并处理退款', + autoJumpAfterReturn: '归还成功后将自动跳转到成功页面', + refreshStatus: '刷新状态', + countdown: '倒计时', + pauseAndExpress: '暂停计费,快递归还', + orderInfoMissing: '缺少订单信息', + returnSuccessMessage: '风扇已归还成功,剩余押金将退还到您的账户', + noOrderInUse: '未找到使用中的订单', + pleaseRefreshManually: '请手动刷新查看归还状态', + cancelling: '取消订单中', + cancelFailedContactService: '取消订单失败,请联系客服', + getOrderStatusFailed: '订单状态查询失败', + syncSuccess: '状态同步成功', + syncFailed: '同步状态失败', + freeRentTime: '免费时长', + pricingRule: '计费规则', + paymentMethod: '支付方式', + perHour: '每小时', + perMinute: '每分钟', + perHalfHour: '每半小时', + deviceNoEject: '宝未弹出', + returnReminder: '归还提醒', + canUsePromotion: '可使用优惠券、会员卡', + usedPromotion: '优惠类型', + convertToOwn: '不想还了?点击转为自用', + convertToOwnTitle: '转为自用', + convertToOwnConfirm: '仅需花费99元,即可转为自用,充电宝将归您所有,确认操作吗?', + convertToOwnSuccess: '已成功转为自用', + convertToOwnFailed: '操作失败,请稍后重试', + convertToOwnConfirmBtn: '买断自用', + convertToOwnCancelBtn: '继续租借', + convertToOwnWithMaxFee: '不想还了?转为自用', + convertToOwnWithMaxFeeTitle: '买断带回家!', + convertToOwnWithMaxFeeConfirm: '既然用得顺手,直接买断带回家!仅需99元,设备永久归你,无需归还~\n✅支持Type-C充电,居家使用超方便~\n✅买断后无任何使用限制,随心用!', + convertToOwnWithMaxFeeSuccess: '买断成功', + convertToOwnWithMaxFeeFailed: '买断失败,请稍后重试', + deviceNoEjectTitle: '充电宝未弹出', + deviceNoEjectConfirm: '您的充电宝未弹出吗?我们将立即为您处理,预计5分钟内解决问题。', + deviceNoEjectSuccess: '反馈已受理,将在5分钟内处理', + deviceNoEjectFailed: '反馈提交失败,请稍后重试', + returnProblemTip: '产品归还入仓后,订单仍未结束,请前往', + contactStaff: '联系工作人员。', + returnLocationMap: '归还点地图', + }, - user: { - clickToLogin: '点击登录', - loginPrompt: '授权登录后可查看订单与资产', - personalCenter: '个人中心', - depositBalance: '押金余额', - withdraw: '提现', - commonServices: '常用服务', - quickReturn: '快速归还', - quickReturnDesc: '(直接查看使用中的订单)', - expressReturn: '快递归还记录', - myOrders: '我的订单', - myCards: '我的会员卡', - myCoupons: '我的优惠券', - customerService: '客服中心', - feedback: '投诉与建议', - businessLicense: '营业资质', - cooperation: '合作加盟', - settings: '设置', - userAgreement: '《用户协议》', - privacyPolicy: '《隐私政策》', - version: 'v', - logout: '退出登录', - confirmLogout: '确认退出登录?', - logoutSuccess: '退出成功', - getUserInfoFailed: '获取用户信息失败', - updateSuccess: '信息更新成功', - updateFailed: '更新用户信息失败', - avatarUpdated: '头像已更新', - avatarUploadFailed: '头像更新失败', - noAvatar: '未选择头像', - noAvatarUrl: '未获取到头像地址', - avatarDownloadFailed: '头像下载失败', - notLoggedIn: '未登录', - phoneNotBound: '未绑定手机号', - balanceDesc: '可用于租借设备', - feedbackRecord: '投诉记录' - }, + user: { + clickToLogin: '点击登录', + loginPrompt: '授权登录后可查看订单与资产', + personalCenter: '个人中心', + depositBalance: '押金余额', + withdraw: '提现', + commonServices: '常用服务', + quickReturn: '快速归还', + quickReturnDesc: '(直接查看使用中的订单)', + expressReturn: '快递归还记录', + myOrders: '我的订单', + myCards: '我的会员卡', + myCoupons: '我的优惠券', + customerService: '客服中心', + feedback: '投诉与建议', + businessLicense: '营业资质', + cooperation: '合作加盟', + settings: '设置', + userAgreement: '《用户协议》', + privacyPolicy: '《隐私政策》', + version: 'v', + logout: '退出登录', + confirmLogout: '确认退出登录?', + logoutSuccess: '退出成功', + getUserInfoFailed: '获取用户信息失败', + updateSuccess: '信息更新成功', + updateFailed: '更新用户信息失败', + avatarUpdated: '头像已更新', + avatarUploadFailed: '头像更新失败', + noAvatar: '未选择头像', + noAvatarUrl: '未获取到头像地址', + avatarDownloadFailed: '头像下载失败', + notLoggedIn: '未登录', + phoneNotBound: '未绑定手机号', + balanceDesc: '可用于租借设备', + feedbackRecord: '投诉记录' + }, - auth: { - authTitle: '授权获取手机号', - authDesc: '为了提供更好的服务和紧急联系,需要授权获取您的手机号', - getPhoneNumber: '手机号快捷登录', - notNow: '暂不授权', - authRequired: '需要授权', - authSuccess: '授权成功', - authFailed: '授权失败', - loginTitle: '登录', - loginDesc: '为保障使用体验,请先完成登录', - getUserInfoSuccess: '获取用户信息成功', - getUserInfoFailed: '获取用户信息失败', - pleaseUseInWechat: '请在微信小程序中使用此功能', - agreeToTerms: '我已阅读并同意', - pleaseAgreeToTerms: '请先阅读并同意《用户协议》和《隐私政策》', - loginSuccess: '登录成功', - loginFailed: '登录失败', - phoneCancelled: '已取消手机号授权', - goToLogin: '去登录', - authDescShort: '为了提供更好的服务,需要授权获取您的手机号', - phoneRequired: '需要授权手机号才能使用设备', - getting: '获取中...', - phoneSuccess: '手机号获取成功', - phoneError: '获取手机号异常', - phoneGetFailed: '获取手机号失败', - authCodeFailed: '获取授权码失败', - phoneLogin: '手机号登录', - phonePlaceholder: '请输入手机号码', - codePlaceholder: '请输入验证码', - getCode: '获取验证码', - resend: '重新发送', - loginBtn: '立即登录', - phoneRequired: '请输入手机号', - phoneInvalid: '请输入正确的手机号', - codeRequired: '请输入验证码', - codeSent: '验证码已发送', - sendCodeFailed: '发送验证码失败', - regionNotSupported: '非大陆、香港、澳门用户请通过平台手机号授权登录', - onlyMainlandSupported: '当前仅支持中国大陆地区', - getServicePhoneFailed: '获取客服电话失败', - noAuthToken: '登录成功但未获取到授权凭证' - }, + auth: { + authTitle: '授权获取手机号', + authDesc: '为了提供更好的服务和紧急联系,需要授权获取您的手机号', + getPhoneNumber: '手机号快捷登录', + notNow: '暂不授权', + authRequired: '需要授权', + authSuccess: '授权成功', + authFailed: '授权失败', + loginTitle: '登录', + loginDesc: '为保障使用体验,请先完成登录', + getUserInfoSuccess: '获取用户信息成功', + getUserInfoFailed: '获取用户信息失败', + pleaseUseInWechat: '请在微信小程序中使用此功能', + agreeToTerms: '我已阅读并同意', + pleaseAgreeToTerms: '请先阅读并同意《用户协议》和《隐私政策》', + loginSuccess: '登录成功', + loginFailed: '登录失败', + phoneCancelled: '已取消手机号授权', + goToLogin: '去登录', + authDescShort: '为了提供更好的服务,需要授权获取您的手机号', + phoneRequired: '需要授权手机号才能使用设备', + getting: '获取中...', + phoneSuccess: '手机号获取成功', + phoneError: '获取手机号异常', + phoneGetFailed: '获取手机号失败', + authCodeFailed: '获取授权码失败', + phoneLogin: '手机号登录', + phonePlaceholder: '请输入手机号码', + codePlaceholder: '请输入验证码', + getCode: '获取验证码', + resend: '重新发送', + loginBtn: '立即登录', + phoneRequired: '请输入手机号', + phoneInvalid: '请输入正确的手机号', + codeRequired: '请输入验证码', + codeSent: '验证码已发送', + sendCodeFailed: '发送验证码失败', + regionNotSupported: '非大陆、香港、澳门用户请通过平台手机号授权登录', + onlyMainlandSupported: '当前仅支持中国大陆地区', + getServicePhoneFailed: '获取客服电话失败', + noAuthToken: '登录成功但未获取到授权凭证' + }, - permission: { - locationTitle: '位置信息授权', - locationNeed: '需要获取您的位置信息以展示附近设备,请在“设置-权限管理”中开启定位权限。', - locationDenied: '未授权定位,将无法展示附近设备。您可以稍后在“设置-权限管理”中重新开启定位权限。', - goToSettings: '去设置', - later: '暂不', - gotIt: '知道了' - }, + permission: { + locationTitle: '位置信息授权', + locationNeed: '需要获取您的位置信息以展示附近设备,请在“设置-权限管理”中开启定位权限。', + locationDenied: '未授权定位,将无法展示附近设备。您可以稍后在“设置-权限管理”中重新开启定位权限。', + goToSettings: '去设置', + later: '暂不', + gotIt: '知道了' + }, - payment: { - paymentAmount: '支付金额', - paymentMethod: '支付方式', - wechatPay: '微信支付', - alipay: '支付宝', - balance: '余额支付', - payNow: '立即支付', - paying: '支付中...', - paymentSuccess: '支付成功', - paymentFailed: '支付失败', - paymentCancelled: '支付已取消', - orderPayment: '订单支付', - waitingForPayment: '等待支付', - pleasePayIn15Min: '请在15分钟内完成支付', - orderInfo: '订单信息', - createTime: '创建时间', - contactPhone: '联系电话', - feeInfo: '费用信息', - deposit: '押金', - package: '套餐', - total: '合计', - paymentFailedRetry: '支付失败,请重试', - createPayOrderFailed: '创建支付订单失败', - subscriptionSuccess: '订阅成功', - subscriptionFailed: '订阅失败,请稍后重试' - }, + payment: { + paymentAmount: '支付金额', + paymentMethod: '支付方式', + wechatPay: '微信支付', + alipay: '支付宝', + balance: '余额支付', + payNow: '立即支付', + paying: '支付中...', + paymentSuccess: '支付成功', + paymentFailed: '支付失败', + paymentCancelled: '支付已取消', + orderPayment: '订单支付', + waitingForPayment: '等待支付', + pleasePayIn15Min: '请在15分钟内完成支付', + orderInfo: '订单信息', + createTime: '创建时间', + contactPhone: '联系电话', + feeInfo: '费用信息', + deposit: '押金', + package: '套餐', + total: '合计', + paymentFailedRetry: '支付失败,请重试', + createPayOrderFailed: '创建支付订单失败', + subscriptionSuccess: '订阅成功', + subscriptionFailed: '订阅失败,请稍后重试' + }, - feedback: { - uploading: '上传中...', - title: '投诉与建议', - placeholder: '请详细描述您遇到的问题,以便我们更好地为您解决', - submit: '提交反馈', - submitSuccess: '反馈成功', - submitFailed: '反馈失败', - contentRequired: '请输入内容', - issueType: '问题类型', - issueDescription: '问题描述', - imageUpload: '图片上传(选填)', - uploadImage: '上传图片', - contactInfo: '联系方式', - contactPlaceholder: '请留下您的手机号,方便我们联系您', - pleaseSelectType: '请选择问题类型', - pleaseDescribe: '请描述您的问题', - pleaseContact: '请留下联系方式', - imageUploadFailed: '图片上传失败,请重试', - deviceFault: '设备故障', - chargingIssue: '收费问题', - usageSuggestion: '使用建议', - other: '其他', - recordList: '投诉记录', - detail: '投诉详情', - noRecord: '暂无投诉记录', - getListFailed: '获取列表失败', - getDetailFailed: '获取详情失败', - processing: '处理中', - completed: '已完成', - pending: '待处理', - complain: '投诉', - suggestion: '建议', - contactPhone: '联系电话', - initialSubmit: '首次提交', - submitTime: '提交时间', - uploadedImages: '上传图片', - platformReplies: '平台回复', - userReplies: '用户回复', - platform: '平台客服', - me: '我', - replyPlaceholder: '请输入您的回复...', - submitReply: '提交回复', - replySuccess: '回复成功', - replyFailed: '回复失败', - pleaseEnterReply: '请输入回复内容', - idRequired: '投诉ID不能为空', - viewRecords: '查看记录', - replyHistory: '回复记录' - }, + feedback: { + uploading: '上传中...', + title: '投诉与建议', + placeholder: '请详细描述您遇到的问题,以便我们更好地为您解决', + submit: '提交反馈', + submitSuccess: '反馈成功', + submitFailed: '反馈失败', + contentRequired: '请输入内容', + issueType: '问题类型', + issueDescription: '问题描述', + imageUpload: '图片上传(选填)', + uploadImage: '上传图片', + contactInfo: '联系方式', + contactPlaceholder: '请留下您的手机号,方便我们联系您', + pleaseSelectType: '请选择问题类型', + pleaseDescribe: '请描述您的问题', + pleaseContact: '请留下联系方式', + imageUploadFailed: '图片上传失败,请重试', + deviceFault: '设备故障', + chargingIssue: '收费问题', + usageSuggestion: '使用建议', + other: '其他', + recordList: '投诉记录', + detail: '投诉详情', + noRecord: '暂无投诉记录', + getListFailed: '获取列表失败', + getDetailFailed: '获取详情失败', + processing: '处理中', + completed: '已完成', + pending: '待处理', + complain: '投诉', + suggestion: '建议', + contactPhone: '联系电话', + initialSubmit: '首次提交', + submitTime: '提交时间', + uploadedImages: '上传图片', + platformReplies: '平台回复', + userReplies: '用户回复', + platform: '平台客服', + me: '我', + replyPlaceholder: '请输入您的回复...', + submitReply: '提交回复', + replySuccess: '回复成功', + replyFailed: '回复失败', + pleaseEnterReply: '请输入回复内容', + idRequired: '投诉ID不能为空', + viewRecords: '查看记录', + replyHistory: '回复记录' + }, - help: { - title: '客服中心', - commonQuestions: '常见问题', - contactUs: '联系我们', - phone: '电话', - email: '邮箱', - workingHours: '工作时间', - workingHoursValue: '周一至周日 09:00-22:00', - functionDeveloping: '功能开发中', - faq1Question: '如何租借风扇?', - faq1Answer: '点击首页"扫码租借"按钮,使用微信扫描设备上的二维码,按提示完成支付即可使用。', - faq2Question: '收费标准是怎样的?', - faq2Answer: '本产品租界风扇采用免押金租借形式,无需支付押金,具体计费方式以场地机柜扫码提示为准。', - faq3Question: '如何归还风扇?', - faq3Answer: '将风扇带到任意归还点,点击首页"扫码归还"按钮,扫描归还点二维码即可完成归还。', - faq4Question: '押金多久能退还?', - faq4Answer: '归还设备后押金将自动发起退款,预计0-7个工作日到账。', - faq5Question: '设备无法正常使用怎么办?', - faq5Answer: '您可以通过"我的-投诉与建议"提交故障反馈,或直接拨打客服电话处理。' - }, + help: { + title: '客服中心', + commonQuestions: '常见问题', + contactUs: '联系我们', + phone: '电话', + email: '邮箱', + workingHours: '工作时间', + workingHoursValue: '周一至周日 09:00-22:00', + functionDeveloping: '功能开发中', + faq1Question: '如何租借风扇?', + faq1Answer: '点击首页"扫码租借"按钮,使用微信扫描设备上的二维码,按提示完成支付即可使用。', + faq2Question: '收费标准是怎样的?', + faq2Answer: '本产品租界风扇采用免押金租借形式,无需支付押金,具体计费方式以场地机柜扫码提示为准。', + faq3Question: '如何归还风扇?', + faq3Answer: '将风扇带到任意归还点,点击首页"扫码归还"按钮,扫描归还点二维码即可完成归还。', + faq4Question: '押金多久能退还?', + faq4Answer: '归还设备后押金将自动发起退款,预计0-7个工作日到账。', + faq5Question: '设备无法正常使用怎么办?', + faq5Answer: '您可以通过"我的-投诉与建议"提交故障反馈,或直接拨打客服电话处理。' + }, - settings: { - title: '设置', - language: '语言', - languageSetting: '语言设置', - chinese: '简体中文', - english: 'English', - indonesian: 'Bahasa Indonesia', - languageSwitched: '语言已切换,正在刷新...', - notification: '通知', - privacy: '隐私', - about: '关于', - clearCache: '清除缓存', - cacheCleared: '缓存已清除', - logout: '退出登录', - confirmLogout: '确认退出登录?', - logoutSuccess: '退出成功' - }, + settings: { + title: '设置', + language: '语言', + languageSetting: '语言设置', + chinese: '简体中文', + english: 'English', + indonesian: 'Bahasa Indonesia', + languageSwitched: '语言已切换,正在刷新...', + notification: '通知', + privacy: '隐私', + about: '关于', + clearCache: '清除缓存', + cacheCleared: '缓存已清除', + logout: '退出登录', + confirmLogout: '确认退出登录?', + logoutSuccess: '退出成功' + }, - express: { - title: '快递归还', - addReturn: '添加归还', - returnRecord: '快递归还记录', - expressNo: '快递单号', - expressCompany: '快递公司', - sendTime: '寄出时间', - receivedTime: '签收时间', - status: '状态', - pending: '待处理', - shipped: '已寄出', - received: '已签收', - detail: '详情', - recipientInfo: '收件信息', - recipientName: '风电者 18163601305', - recipientAddress: '湖南省长沙市岳麓区麓谷街道新长海尖科技园A2栋623', - copyAllInfo: '一键复制全部信息', - recipient: '收件人', - recipientAddressLabel: '收件地址', - copySuccess: '全部信息已复制', - copyFailed: '复制失败', - noReturnRecord: '暂无归还记录', - toFill: '待填写', - userPhone: '用户电话', - billingPaused: '暂停计费中', - completed: '已完成', - processing: '处理中', - getListFailed: '获取列表失败', - loadFailed: '加载失败', - returnCompleted: '归还完成', - returnCompletedDesc: '您的快递已成功归还', - processingDesc: '正在处理您的归还请求', - pendingDesc: '等待处理归还申请', - expressInfo: '快递信息', - trackingNo: '运单号', - packageType: '包裹类型', - packageWeight: '包裹重量', - returnInfo: '归还信息', - returnAddress: '归还地址', - returnTime: '归还时间', - processTime: '处理时间', - completeTime: '完成时间', - remarkInfo: '备注信息', - copyTrackingNo: '复制运单号', - trackingNoCopied: '运单号已复制', - workingHours: '周一至周日 09:00-22:00', - call: '拨打', - returnDetail: '归还详情', - getDetailFailed: '获取详情失败', - fillExpress: '快递归还', - openTime: '开始时间', - fillExpressInfo: '填写快递归还信息', - contactPhone: '联系电话', - fillTrackingPlaceholder: '请输入需要补填的快递单号', - trackingPlaceholder: '请输入快递单号(可先留空)', - confirmFill: '确认补填', - submitInfo: '提交信息', - orderNoMissing: '缺少订单号', - getRecordFailed: '获取记录失败', - existingReturnNotice: '已存在快递归还申请,是否前往补填快递单号?', - goToFill: '去补填', - alreadyHasRecord: '已有归还记录', - pleaseEnterValidPhone: '请填写有效联系电话', - pleaseEnterTrackingNo: '请填写快递单号', - filling: '补填中', - fillSuccess: '补填成功', - fillFailed: '补填失败', - submitSuccess: '提交成功', - submitFailed: '提交失败' - }, + express: { + title: '快递归还', + addReturn: '添加归还', + returnRecord: '快递归还记录', + expressNo: '快递单号', + expressCompany: '快递公司', + sendTime: '寄出时间', + receivedTime: '签收时间', + status: '状态', + pending: '待处理', + shipped: '已寄出', + received: '已签收', + detail: '详情', + recipientInfo: '收件信息', + recipientName: '风电者 18163601305', + recipientAddress: '湖南省长沙市岳麓区麓谷街道新长海尖科技园A2栋623', + copyAllInfo: '一键复制全部信息', + recipient: '收件人', + recipientAddressLabel: '收件地址', + copySuccess: '全部信息已复制', + copyFailed: '复制失败', + noReturnRecord: '暂无归还记录', + toFill: '待填写', + userPhone: '用户电话', + billingPaused: '暂停计费中', + completed: '已完成', + processing: '处理中', + getListFailed: '获取列表失败', + loadFailed: '加载失败', + returnCompleted: '归还完成', + returnCompletedDesc: '您的快递已成功归还', + processingDesc: '正在处理您的归还请求', + pendingDesc: '等待处理归还申请', + expressInfo: '快递信息', + trackingNo: '运单号', + packageType: '包裹类型', + packageWeight: '包裹重量', + returnInfo: '归还信息', + returnAddress: '归还地址', + returnTime: '归还时间', + processTime: '处理时间', + completeTime: '完成时间', + remarkInfo: '备注信息', + copyTrackingNo: '复制运单号', + trackingNoCopied: '运单号已复制', + workingHours: '周一至周日 09:00-22:00', + call: '拨打', + returnDetail: '归还详情', + getDetailFailed: '获取详情失败', + fillExpress: '快递归还', + openTime: '开始时间', + fillExpressInfo: '填写快递归还信息', + contactPhone: '联系电话', + fillTrackingPlaceholder: '请输入需要补填的快递单号', + trackingPlaceholder: '请输入快递单号(可先留空)', + confirmFill: '确认补填', + submitInfo: '提交信息', + orderNoMissing: '缺少订单号', + getRecordFailed: '获取记录失败', + existingReturnNotice: '已存在快递归还申请,是否前往补填快递单号?', + goToFill: '去补填', + alreadyHasRecord: '已有归还记录', + pleaseEnterValidPhone: '请填写有效联系电话', + pleaseEnterTrackingNo: '请填写快递单号', + filling: '补填中', + fillSuccess: '补填成功', + fillFailed: '补填失败', + submitSuccess: '提交成功', + submitFailed: '提交失败' + }, - join: { - title: '合作加盟', - cooperationTitle: '合作方式', - contactUs: '联系我们', - phone: '联系电话', - email: '联系邮箱', - submit: '提交申请', - name: '姓名', - contactPhone: '联系方式', - city: '所在城市', - intention: '合作意向', - placeholder: '请简要说明您的合作意向...', - submitSuccess: '提交成功,我们会尽快联系您', - submitFailed: '提交失败,请稍后重试', - pageLoadFailed: '页面加载失败' - }, + join: { + title: '合作加盟', + cooperationTitle: '合作方式', + contactUs: '联系我们', + phone: '联系电话', + email: '联系邮箱', + submit: '提交申请', + name: '姓名', + contactPhone: '联系方式', + city: '所在城市', + intention: '合作意向', + placeholder: '请简要说明您的合作意向...', + submitSuccess: '提交成功,我们会尽快联系您', + submitFailed: '提交失败,请稍后重试', + pageLoadFailed: '页面加载失败' + }, - legal: { - agreement: '用户协议', - privacy: '隐私政策', - termsOfService: '服务条款', - termsAndConditions: '条款与细则', - lastUpdate: '最后更新', - applicableToService: '适用于"风电者"共享风扇租借服务', - footerNotice: '如对本协议有疑问,请前往"我的-客服"咨询', - footerNoticePolicy: '如对本政策有疑问,请前往"我的-客服"咨询', + legal: { + agreement: '用户协议', + privacy: '隐私政策', + termsOfService: '服务条款', + termsAndConditions: '条款与细则', + lastUpdate: '最后更新', + applicableToService: '适用于"风电者"共享风扇租借服务', + footerNotice: '如对本协议有疑问,请前往"我的-客服"咨询', + footerNoticePolicy: '如对本政策有疑问,请前往"我的-客服"咨询', - // 条款与细则内容 - applicableLaw: '适用法律', - applicableLawContent: '本服务条款受中华人民共和国法律管辖。用户使用本服务即表示同意接受中国法律的约束。任何因本服务引起的争议,应首先通过友好协商解决;协商不成的,任何一方均可向服务提供方所在地有管辖权的人民法院提起诉讼。', + // 条款与细则内容 + applicableLaw: '适用法律', + applicableLawContent: '本服务条款受中华人民共和国法律管辖。用户使用本服务即表示同意接受中国法律的约束。任何因本服务引起的争议,应首先通过友好协商解决;协商不成的,任何一方均可向服务提供方所在地有管辖权的人民法院提起诉讼。', - paymentMethods: '支付方式', - paymentMethodsContent: '我们支持多种支付方式,包括但不限于:微信支付、支付宝、微信支付分免押金等。用户在使用服务前需完成支付流程。支付成功后,系统将自动开启设备供用户使用。所有支付交易均通过安全加密通道进行,确保用户资金安全。', + paymentMethods: '支付方式', + paymentMethodsContent: '我们支持多种支付方式,包括但不限于:微信支付、支付宝、微信支付分免押金等。用户在使用服务前需完成支付流程。支付成功后,系统将自动开启设备供用户使用。所有支付交易均通过安全加密通道进行,确保用户资金安全。', - refundPolicy: '退款介绍', - refundPolicyContent: '1. 押金退款:归还设备后,押金将在扣除相应租金后自动退还至原支付账户,预计0-7个工作日到账。\n2. 订单取消:未使用的订单可在开始使用前取消,押金将全额退还。\n3. 异常退款:如遇设备故障等特殊情况,用户可申请退款,我们将在核实后3-5个工作日内处理。\n4. 会员卡/优惠券:已购买的会员卡和优惠券一般不支持退款,特殊情况请联系客服处理。', + refundPolicy: '退款介绍', + refundPolicyContent: '1. 押金退款:归还设备后,押金将在扣除相应租金后自动退还至原支付账户,预计0-7个工作日到账。\n2. 订单取消:未使用的订单可在开始使用前取消,押金将全额退还。\n3. 异常退款:如遇设备故障等特殊情况,用户可申请退款,我们将在核实后3-5个工作日内处理。\n4. 会员卡/优惠券:已购买的会员卡和优惠券一般不支持退款,特殊情况请联系客服处理。', - serviceTerms: '服务条款', - serviceTermsContent: '用户在使用本服务时,应遵守以下规定:1) 妥善保管租借的设备,不得故意损坏或私自占有;2) 按时归还设备,避免产生额外费用;3) 不得将设备用于非法用途;4) 如发现设备故障,应及时联系客服处理。违反上述规定的,我们有权终止服务并追究相应责任。', + serviceTerms: '服务条款', + serviceTermsContent: '用户在使用本服务时,应遵守以下规定:1) 妥善保管租借的设备,不得故意损坏或私自占有;2) 按时归还设备,避免产生额外费用;3) 不得将设备用于非法用途;4) 如发现设备故障,应及时联系客服处理。违反上述规定的,我们有权终止服务并追究相应责任。', - liabilityLimitation: '责任限制', - liabilityLimitationContent: '在法律允许的最大范围内,我们对因使用或无法使用本服务而导致的任何间接、偶然、特殊或后果性损害不承担责任。我们的总责任不超过用户为使用本服务所支付的费用。对于因不可抗力、网络故障、第三方原因等导致的服务中断或延迟,我们不承担责任。', + liabilityLimitation: '责任限制', + liabilityLimitationContent: '在法律允许的最大范围内,我们对因使用或无法使用本服务而导致的任何间接、偶然、特殊或后果性损害不承担责任。我们的总责任不超过用户为使用本服务所支付的费用。对于因不可抗力、网络故障、第三方原因等导致的服务中断或延迟,我们不承担责任。', - disputeResolution: '争议解决', - disputeResolutionContent: '如用户对服务有任何疑问或争议,请首先通过客服渠道联系我们,我们将在收到反馈后24小时内响应,并尽快协商解决。如协商不成,双方同意将争议提交至服务提供方所在地有管辖权的人民法院通过诉讼方式解决。在争议解决期间,双方应继续履行本协议中无争议的条款。' - }, + disputeResolution: '争议解决', + disputeResolutionContent: '如用户对服务有任何疑问或争议,请首先通过客服渠道联系我们,我们将在收到反馈后24小时内响应,并尽快协商解决。如协商不成,双方同意将争议提交至服务提供方所在地有管辖权的人民法院通过诉讼方式解决。在争议解决期间,双方应继续履行本协议中无争议的条款。' + }, - search: { - title: '查找设备', - placeholder: '请输入场地名称或地址', - history: '搜索历史', - clear: '清除历史', - noResult: '暂无搜索结果', - searching: '搜索中...', - invalidCoordinate: '该位置坐标无效', - positionInfoError: '场地信息异常' - }, + search: { + title: '查找设备', + placeholder: '请输入场地名称或地址', + history: '搜索历史', + clear: '清除历史', + noResult: '暂无搜索结果', + searching: '搜索中...', + invalidCoordinate: '该位置坐标无效', + positionInfoError: '场地信息异常' + }, - share: { - title: '风电者 - 共享风扇暖手充电宝', - path: '/pages/index/index' - }, + share: { + title: '风电者 - 共享风扇暖手充电宝', + path: '/pages/index/index' + }, - error: { - networkError: '网络连接失败', - serverError: '服务器错误', - timeout: '请求超时', - unknown: '未知错误', - tryAgain: '请稍后重试' - }, + error: { + networkError: '网络连接失败', + serverError: '服务器错误', + timeout: '请求超时', + unknown: '未知错误', + tryAgain: '请稍后重试' + }, - time: { - hour: '小时', - minute: '分钟', - second: '秒', - day: '天', - week: '周', - month: '月', - year: '年', - justNow: '刚刚', - minutesAgo: '分钟前', - hoursAgo: '小时前', - daysAgo: '天前', - yesterday: '昨天', - today: '今天', - tomorrow: '明天', - hours: '小时', - minutes: '分钟', - halfHours: '半小时' - }, + time: { + hour: '小时', + minute: '分钟', + second: '秒', + day: '天', + week: '周', + month: '月', + year: '年', + justNow: '刚刚', + minutesAgo: '分钟前', + hoursAgo: '小时前', + daysAgo: '天前', + yesterday: '昨天', + today: '今天', + tomorrow: '明天', + hours: '小时', + minutes: '分钟', + halfHours: '半小时' + }, - unit: { - yuan: '元', - meter: '米', - km: '公里', - piece: '个', - times: '次' - }, + unit: { + yuan: '元', + meter: '米', + km: '公里', + piece: '个', + times: '次' + }, - waiting: { - title: '设备弹出中', - preparing: '正在为您弹出设备', - longTimeNotice: '若长时间未弹出,请联系现场工作人员或稍后重试', - deviceEjecting: '设备弹出中,请稍候', - rentFailed: '设备租借失败,订单已取消', - timeout: '等待超时,请稍后重试' - }, + waiting: { + title: '设备弹出中', + preparing: '正在为您弹出设备', + longTimeNotice: '若长时间未弹出,请联系现场工作人员或稍后重试', + deviceEjecting: '设备弹出中,请稍候', + rentFailed: '设备租借失败,订单已取消', + timeout: '等待超时,请稍后重试' + }, - success: { - paymentSuccess: '支付成功', - paymentSuccessDesc: '您的订单已支付成功', - orderInfo: '订单信息', - paymentAmount: '支付金额', - paymentTime: '支付时间', - deviceStatus: '设备状态', - preparingDevice: '正在准备您的设备,请稍候...', - deviceReady: '设备已弹出,请取走您的风扇', - deviceFailed: '弹出设备失败,请联系客服', - backToHome: '返回首页', - viewOrder: '查看订单', - returnSuccess: '归还成功', - returnSuccessDesc: '您的风扇已归还,费用已从押金中扣除', - usedTime: '使用时长', - packageTime: '套餐时长', - extraTime: '超出时长', - returnTime: '归还时间', - packageFee: '套餐费用', - extraFee: '超时费用', - totalFee: '总费用', - depositAmount: '押金', - refundAmount: '退还金额', - refundStatus: '退还状态', - refundNotice: '退款说明', - refundNotice1: '押金剩余金额需要您手动申请提现', - refundNotice2: '提现申请提交后将在1-3个工作日内退还到原支付账户', - refundNotice3: '如有疑问,请联系客服', - applyRefund: '申请退款', - refundWaiting: '待申请', - refundProcessing: '处理中', - refundSuccess: '已退款', - refundFailed: '退款失败' - }, + success: { + paymentSuccess: '支付成功', + paymentSuccessDesc: '您的订单已支付成功', + orderInfo: '订单信息', + paymentAmount: '支付金额', + paymentTime: '支付时间', + deviceStatus: '设备状态', + preparingDevice: '正在准备您的设备,请稍候...', + deviceReady: '设备已弹出,请取走您的风扇', + deviceFailed: '弹出设备失败,请联系客服', + backToHome: '返回首页', + viewOrder: '查看订单', + returnSuccess: '归还成功', + returnSuccessDesc: '您的风扇已归还,费用已从押金中扣除', + usedTime: '使用时长', + packageTime: '套餐时长', + extraTime: '超出时长', + returnTime: '归还时间', + packageFee: '套餐费用', + extraFee: '超时费用', + totalFee: '总费用', + depositAmount: '押金', + refundAmount: '退还金额', + refundStatus: '退还状态', + refundNotice: '退款说明', + refundNotice1: '押金剩余金额需要您手动申请提现', + refundNotice2: '提现申请提交后将在1-3个工作日内退还到原支付账户', + refundNotice3: '如有疑问,请联系客服', + applyRefund: '申请退款', + refundWaiting: '待申请', + refundProcessing: '处理中', + refundSuccess: '已退款', + refundFailed: '退款失败' + }, - deposit: { - title: '押金管理', - depositBalance: '押金余额', - withdraw: '提现', - withdrawRecord: '提现记录', - withdrawAmount: '提现金额', - withdrawStatus: '提现状态', - applyWithdraw: '申请提现', - withdrawSuccess: '提现成功', - withdrawFailed: '提现失败', - noBalance: '无可提现余额', - confirmWithdraw: '确认提现', - withdrawDesc: '押金将原路退回,预计0-7个工作日到账', - withdrawing: '提现中...', - withdrawSubmitted: '提现申请已提交', - withdrawNotice: '提现说明', - withdrawNotice1: '提现金额将原路退回支付账户', - withdrawNotice2: '提现申请提交后预计0-7个工作日到账', - withdrawNotice3: '如超时未收到,请联系客服处理', - depositRecord: '押金记录', - payRecord: '支付记录', - refundRecord: '退还记录', - orderNotReturned: '当前订单尚未归还,请归还后再提现', - alreadyRefunded: '押金已退还,无需重复提现', - refundProcessing: '押金退还处理中,请耐心等待' - }, + deposit: { + title: '押金管理', + depositBalance: '押金余额', + withdraw: '提现', + withdrawRecord: '提现记录', + withdrawAmount: '提现金额', + withdrawStatus: '提现状态', + applyWithdraw: '申请提现', + withdrawSuccess: '提现成功', + withdrawFailed: '提现失败', + noBalance: '无可提现余额', + confirmWithdraw: '确认提现', + withdrawDesc: '押金将原路退回,预计0-7个工作日到账', + withdrawing: '提现中...', + withdrawSubmitted: '提现申请已提交', + withdrawNotice: '提现说明', + withdrawNotice1: '提现金额将原路退回支付账户', + withdrawNotice2: '提现申请提交后预计0-7个工作日到账', + withdrawNotice3: '如超时未收到,请联系客服处理', + depositRecord: '押金记录', + payRecord: '支付记录', + refundRecord: '退还记录', + orderNotReturned: '当前订单尚未归还,请归还后再提现', + alreadyRefunded: '押金已退还,无需重复提现', + refundProcessing: '押金退还处理中,请耐心等待' + }, - userProfile: { - title: '个人信息', - avatar: '头像', - nickname: '昵称', - phone: '手机号', - edit: '编辑', - save: '保存', - cancel: '取消', - clickToChange: '点击头像更换', - notSet: '未设置', - notBound: '未绑定', - balance: '余额', - enterNickname: '请输入新昵称', - nicknameRequired: '昵称不能为空', - saving: '保存中...', - nicknameUpdated: '昵称修改成功', - updateFailed: '修改失败', - uploading: '上传中...' - }, + userProfile: { + title: '个人信息', + avatar: '头像', + nickname: '昵称', + phone: '手机号', + edit: '编辑', + save: '保存', + cancel: '取消', + clickToChange: '点击头像更换', + notSet: '未设置', + notBound: '未绑定', + balance: '余额', + enterNickname: '请输入新昵称', + nicknameRequired: '昵称不能为空', + saving: '保存中...', + nicknameUpdated: '昵称修改成功', + updateFailed: '修改失败', + uploading: '上传中...' + }, - purchase: { - title: '优惠专区', - memberCard: '会员卡', - coupon: '优惠券', - buyNow: '立即购买', - myCards: '我的会员卡', - myCoupons: '我的优惠券', - cardDescription: '会员卡说明', - couponDescription: '优惠券说明', - pleaseSelect: '请选择要购买的商品', - noCards: '暂无可用会员卡', - noCoupons: '暂无可用优惠券', - cardUseInstruction: '使用说明', - cardValidityPeriod: '有效期限', - cardRefundPolicy: '退款说明', - cardUseDescription: '会员卡购买后即时生效,可在指定场地使用。次卡按使用次数计费,时长卡按使用时长计费,请根据您的实际需求选择合适的卡种。', - cardValidityDescription: '会员卡自购买之日起生效,有效期根据卡种不同而有所区别。次卡在有效期内使用完毕即失效,时长卡在有效期内累计使用时长达到后失效。', - cardRefundDescription: '会员卡购买后不支持退款,未使用部分可以在有效期内继续使用。如遇特殊情况需要退款,请联系客服进行处理。', - couponUseInstruction: '使用说明', - couponValidityPeriod: '有效期限', - couponUsageScope: '使用范围', - couponUseDescription: '优惠券购买后即时生效,可在订单结算时使用。每张订单仅可使用一张优惠券,优惠券不可与其他优惠活动叠加使用。', - couponValidityDescription: '优惠券自购买之日起生效,请在有效期内使用。过期后优惠券将自动失效,不可延期使用。', - couponUsageDescription: '优惠券可在指定场地使用,具体可用场地请查看优惠券详情。部分优惠券有最低消费门槛要求,请注意查看使用条件。' - }, + purchase: { + title: '优惠专区', + memberCard: '会员卡', + coupon: '优惠券', + buyNow: '立即购买', + myCards: '我的会员卡', + myCoupons: '我的优惠券', + cardDescription: '会员卡说明', + couponDescription: '优惠券说明', + pleaseSelect: '请选择要购买的商品', + noCards: '暂无可用会员卡', + noCoupons: '暂无可用优惠券', + cardUseInstruction: '使用说明', + cardValidityPeriod: '有效期限', + cardRefundPolicy: '退款说明', + cardUseDescription: '会员卡购买后即时生效,可在指定场地使用。次卡按使用次数计费,时长卡按使用时长计费,请根据您的实际需求选择合适的卡种。', + cardValidityDescription: '会员卡自购买之日起生效,有效期根据卡种不同而有所区别。次卡在有效期内使用完毕即失效,时长卡在有效期内累计使用时长达到后失效。', + cardRefundDescription: '会员卡购买后不支持退款,未使用部分可以在有效期内继续使用。如遇特殊情况需要退款,请联系客服进行处理。', + couponUseInstruction: '使用说明', + couponValidityPeriod: '有效期限', + couponUsageScope: '使用范围', + couponUseDescription: '优惠券购买后即时生效,可在订单结算时使用。每张订单仅可使用一张优惠券,优惠券不可与其他优惠活动叠加使用。', + couponValidityDescription: '优惠券自购买之日起生效,请在有效期内使用。过期后优惠券将自动失效,不可延期使用。', + couponUsageDescription: '优惠券可在指定场地使用,具体可用场地请查看优惠券详情。部分优惠券有最低消费门槛要求,请注意查看使用条件。' + }, - myCard: { - type: '类型', - timesCard: '次卡', - durationCard: '时长卡', - remainingTimes: '剩余次数:', - remainingDuration: '剩余时长', - hours: '小时', - validPeriod: '有效期', - active: '使用中', - expired: '已失效', - used: '已用完', - position: '使用地点', - price: '购买价格', - noCards: '暂无会员卡', - buyNow: '立即购买', - getListFailed: '获取会员卡列表失败', - dailyLimit: '每日限用', - singleTimeLimit: '单次限时', - unlimited: '不限', - times: '次', - minutes: '分钟', - validWithinDays: '天内有效', - validFromPurchase: '从购买时间起', - daysValid: '天有效', - currentCycleUsed: '本周期已使用', - totalCount: '总次数', - expire: '到期', - expiredOn: '失效于', - renew: '续卡', - toUse: '去使用', - onlyForRegionBefore: '仅限', - onlyForRegionAfter: '使用' - }, - - myCoupon: { - available: '可使用', - used: '已使用', - expired: '已过期', - useNow: '去使用', - usedStatus: '已使用', - expiredStatus: '已过期', - refundedStatus: '已退款', - noAvailableCoupons: '暂无可用优惠券', - noUsedCoupons: '暂无已使用优惠券', - noExpiredCoupons: '暂无已过期优惠券', - buyNow: '立即购买', - getListFailed: '获取优惠券列表失败', - onlyForRegionBefore: '仅限', - onlyForRegionAfter: '使用' - }, - - goods: { - title: '商品详情', - goodsTitle: '定制详情', - productName: '风电者共享风扇 + 充电宝 + 暖手宝系列-樱花粉', - perUnit: '/个', - buyNow: '立即购买', - productDetail: '定制详情', - features: { - battery: '8000Ahm', - batteryDesc: '大容量电池', - wind: '高效风扇', - temp: '智能控温', - charge: '快速充电' - }, - description: '风电者共享风扇,集风扇、充电宝、暖手宝三合一功能。采用8000mAh大容量电池,续航持久。高效风扇设计,三档风力可调。智能控温暖手宝,冬暖夏凉。快速充电技术,支持多设备充电。樱花粉配色,时尚美观,是您出行的最佳伴侣。', - confirmPurchase: '确认购买', - confirmPurchaseContent: '确认购买该商品,需支付 ¥{price}?', - purchaseSuccess: '购买成功', - purchaseFailed: '购买失败', - processing: '正在处理...' - } -} + myCard: { + type: '类型', + timesCard: '次卡', + durationCard: '时长卡', + remainingTimes: '剩余次数:', + remainingDuration: '剩余时长', + hours: '小时', + validPeriod: '有效期', + active: '使用中', + expired: '已失效', + used: '已用完', + position: '使用地点', + price: '购买价格', + noCards: '暂无会员卡', + buyNow: '立即购买', + getListFailed: '获取会员卡列表失败', + dailyLimit: '每日限用', + singleTimeLimit: '单次限时', + unlimited: '不限', + times: '次', + minutes: '分钟', + validWithinDays: '天内有效', + validFromPurchase: '从购买时间起', + daysValid: '天有效', + currentCycleUsed: '本周期已使用', + totalCount: '总次数', + expire: '到期', + expiredOn: '失效于', + renew: '续卡', + toUse: '去使用', + onlyForRegionBefore: '仅限', + onlyForRegionAfter: '使用' + }, + myCoupon: { + available: '可使用', + used: '已使用', + expired: '已过期', + useNow: '去使用', + usedStatus: '已使用', + expiredStatus: '已过期', + refundedStatus: '已退款', + noAvailableCoupons: '暂无可用优惠券', + noUsedCoupons: '暂无已使用优惠券', + noExpiredCoupons: '暂无已过期优惠券', + buyNow: '立即购买', + getListFailed: '获取优惠券列表失败', + onlyForRegionBefore: '仅限', + onlyForRegionAfter: '使用' + }, + goods: { + title: '商品详情', + goodsTitle: '定制详情', + productName: '风电者共享风扇 + 充电宝 + 暖手宝系列-樱花粉', + perUnit: '/个', + buyNow: '立即购买', + productDetail: '定制详情', + features: { + battery: '8000Ahm', + batteryDesc: '大容量电池', + wind: '高效风扇', + temp: '智能控温', + charge: '快速充电' + }, + description: '风电者共享风扇,集风扇、充电宝、暖手宝三合一功能。采用8000mAh大容量电池,续航持久。高效风扇设计,三档风力可调。智能控温暖手宝,冬暖夏凉。快速充电技术,支持多设备充电。樱花粉配色,时尚美观,是您出行的最佳伴侣。', + confirmPurchase: '确认购买', + confirmPurchaseContent: '确认购买该商品,需支付 ¥{price}?', + purchaseSuccess: '购买成功', + purchaseFailed: '购买失败', + processing: '正在处理...' + } +} \ No newline at end of file diff --git a/pages/device/detail.vue b/pages/device/detail.vue index d80ed0e..dff8c8b 100644 --- a/pages/device/detail.vue +++ b/pages/device/detail.vue @@ -4,17 +4,22 @@ - + {{ deviceLocation }} {{ deviceStatus.text }} + + {{ $t('order.deviceName') }}: + {{ deviceInfo.name }} + {{ $t('device.deviceNo') }}: {{ deviceId }} + @@ -87,7 +92,7 @@ - + {{ $t('device.wxPayScoreDesc') }} @@ -772,6 +777,7 @@ .device-id { display: flex; align-items: center; + margin-bottom: 5rpx; .id-label { font-size: 26rpx; diff --git a/pages/index/index.vue b/pages/index/index.vue index b90c1bf..87264eb 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -46,21 +46,21 @@ - + {{ $t('home.buyDevice') }} - + {{ $t('home.scanToUse') }} - + {{ $t('home.personalCenter') }} diff --git a/pages/order/detail.vue b/pages/order/detail.vue index 766b67d..f9a6f9e 100644 --- a/pages/order/detail.vue +++ b/pages/order/detail.vue @@ -15,7 +15,7 @@ - + {{ $t('order.deviceNoEject') }} @@ -50,7 +50,7 @@ - + @@ -89,7 +89,7 @@ {{ $t('order.usedPromotion') }} - + {{ orderInfo.discountTypeName }}{{'-¥'+orderInfo.discountAmount||''}} @@ -125,11 +125,11 @@ @@ -137,7 +137,7 @@