693 lines
32 KiB
TypeScript
693 lines
32 KiB
TypeScript
export default {
|
||
'h5.center.title': 'Customer Center',
|
||
'h5.tab.assistant': 'AI Advisor',
|
||
'h5.tab.price': 'Rates',
|
||
'h5.tab.createOrder': 'Order',
|
||
'h5.tab.orders': 'Orders',
|
||
'h5.tab.me': 'Me',
|
||
|
||
'h5.assistant.quick.price': 'How do I check shipping rates?',
|
||
'h5.assistant.quick.pay': 'How do I pay a pending order?',
|
||
'h5.assistant.quick.track': 'How often is tracking updated?',
|
||
'h5.assistant.quick.issue': 'What if my shipment has an issue?',
|
||
'h5.assistant.tip.defaultTitle': 'Ask anything',
|
||
'h5.assistant.tip.defaultDesc': 'Rates, payment, tracking, and issues — just ask',
|
||
'h5.assistant.tip.waybillTitle': 'Waybill context loaded',
|
||
'h5.assistant.tip.waybillDesc': 'Ask about tracking, fees, or issues without pasting the number',
|
||
'h5.assistant.tip.priceTitle': 'Quote context loaded',
|
||
'h5.assistant.tip.priceDesc': 'The input is prefilled with your quote — keep asking',
|
||
'h5.assistant.clearContext': 'Clear',
|
||
|
||
'h5.price.title': 'Check Rates',
|
||
'h5.price.subtitle': 'Pick a country and weight — compare and order fast',
|
||
'h5.price.country': 'Destination',
|
||
'h5.price.countryPlaceholder': 'Select destination',
|
||
'h5.price.countrySearchPh': 'Search name or ISO2, e.g. USA / US',
|
||
'h5.price.origin': 'From warehouse',
|
||
'h5.price.originAny': 'Any warehouse',
|
||
'h5.price.destination': 'Destination',
|
||
'h5.price.postalCode': 'Postcode',
|
||
'h5.price.postalCodePh': 'Optional — better zoning',
|
||
'h5.price.packageWeight': 'Package weight',
|
||
'h5.price.cargoAttr': 'Cargo type',
|
||
'h5.price.cargoPick': 'Select',
|
||
'h5.price.cargoAny': 'Any',
|
||
'h5.price.weight': 'Weight',
|
||
'h5.price.weightPlaceholder': '0',
|
||
'h5.price.dimensions': 'Dimensions (cm, optional)',
|
||
'h5.price.length': 'L',
|
||
'h5.price.width': 'W',
|
||
'h5.price.height': 'H',
|
||
'h5.price.query': 'Check rates',
|
||
'h5.price.querying': 'Checking…',
|
||
'h5.price.reset': 'Reset',
|
||
'h5.price.sort.recommend': 'Best match',
|
||
'h5.price.sort.price': 'Price',
|
||
'h5.price.sort.time': 'Speed',
|
||
'h5.price.recommendTag': 'Best',
|
||
'h5.price.tag.priceOptimal': 'Best price',
|
||
'h5.price.tag.timeOptimal': 'Fastest',
|
||
'h5.price.tag.best': 'Best',
|
||
'h5.price.dimensionsToggle': 'Size (optional)',
|
||
'h5.price.dimensionsHint': 'L×W×H for volumetric weight',
|
||
'h5.price.accuracy.postalCta': 'Estimate only — add a postal code for better accuracy',
|
||
'h5.price.accuracy.fillPostal': 'Add postal code',
|
||
'h5.price.accuracy.dismiss': 'Dismiss',
|
||
'h5.price.ai.title': 'AI route pick',
|
||
'h5.price.ai.placeholder': 'e.g. lipstick, apparel, power bank',
|
||
'h5.price.ai.action': 'AI Recommend',
|
||
'h5.price.ai.needQuotes': 'Run a quote search first, then use AI recommend',
|
||
'h5.price.ai.needName': 'Please enter a product name',
|
||
'h5.price.hint.estimated': 'Indicative only; final after inbound',
|
||
'h5.price.askAdvisor': 'Ask AI',
|
||
'h5.price.askAiCanShip': 'Can this ship?',
|
||
'h5.price.askAiCheaper': 'Anything cheaper?',
|
||
'h5.price.goOrder': 'Place order',
|
||
'h5.price.goOrderHint': 'Opening place-order…',
|
||
'h5.price.empty': 'Enter country and weight to get quotes',
|
||
'h5.price.noResult': 'No quotes found. Adjust filters or ask the advisor.',
|
||
'h5.price.delivery': 'Transit',
|
||
'h5.price.workingDays': 'business days',
|
||
'h5.price.chargeableWeight': 'Chargeable wt',
|
||
'h5.price.required': 'Please enter destination and weight',
|
||
'h5.price.referenceTip': 'Estimates only — final charges may differ',
|
||
'h5.price.referenceBanner': 'Rates are estimates. Tap a card for route details.',
|
||
'h5.price.referencePrice': 'Est.',
|
||
'h5.price.productGroup': 'Product group',
|
||
'h5.price.cargo': 'Cargo type',
|
||
'h5.price.warehouse': 'Warehouse',
|
||
'h5.price.tradeTerms': 'Trade terms',
|
||
'h5.price.tradeTerms.ddp': 'DDP (duties included)',
|
||
'h5.price.tradeTerms.ddu': 'DDU (duties excluded)',
|
||
'h5.price.viewDetail': 'Route details',
|
||
'h5.price.detailTitle': 'Route details',
|
||
'h5.price.detailTitleNamed': '{name} · Details',
|
||
'h5.price.routeGuide': 'Route guide',
|
||
'h5.price.guideEmpty': 'No route guide yet',
|
||
'h5.price.guideMissing': 'Missing product info for route details',
|
||
'h5.price.guideFailed': 'Failed to load route details',
|
||
'h5.price.freight': 'Freight',
|
||
'h5.price.otherFees': 'Other fees',
|
||
'h5.price.shortcut.US': 'US',
|
||
'h5.price.shortcut.GB': 'UK',
|
||
'h5.price.shortcut.DE': 'DE',
|
||
'h5.price.shortcut.CA': 'CA',
|
||
'h5.price.shortcut.FR': 'FR',
|
||
'h5.price.shortcut.ES': 'ES',
|
||
'h5.price.shortcut.MX': 'MX',
|
||
'h5.price.shortcut.BR': 'BR',
|
||
'h5.price.shortcut.NZ': 'NZ',
|
||
'h5.price.shortcut.IT': 'IT',
|
||
'h5.price.shortcut.NL': 'NL',
|
||
|
||
'h5.orders.title': 'My Orders',
|
||
'h5.orders.searchPlaceholder': 'Waybill / customer / tracking no.',
|
||
'h5.orders.empty': 'No orders',
|
||
'h5.orders.emptyGoPrice': 'Check rates',
|
||
'h5.orders.loadMore': 'Load more',
|
||
'h5.orders.todo': 'To-do',
|
||
'h5.orders.group.all': 'All',
|
||
'h5.orders.group.actionNeeded': 'Action needed',
|
||
'h5.orders.group.warehouse': 'In warehouse',
|
||
'h5.orders.group.shipping': 'In transit',
|
||
'h5.orders.group.done': 'Delivered',
|
||
'h5.orders.group.issue': 'Issues',
|
||
'h5.orders.pay': 'Pay',
|
||
'h5.orders.track': 'Track',
|
||
'h5.orders.askAdvisor': 'Ask AI',
|
||
'h5.orders.detail': 'Details',
|
||
'h5.orders.copySuccess': 'Copied',
|
||
'h5.orders.copyFailed': 'Copy failed',
|
||
'h5.orders.payable': 'Due',
|
||
'h5.orders.paid': 'Paid',
|
||
'h5.orders.mergePickup.entry': 'Merge pickup',
|
||
'h5.orders.mergePickup.title': 'Schedule door pickup',
|
||
'h5.orders.mergePickup.cancel': 'Cancel',
|
||
'h5.orders.mergePickup.hint': 'Pre-declared waybills not yet on a pickup sheet, same warehouse only',
|
||
'h5.orders.mergePickup.stepSelect': 'Select',
|
||
'h5.orders.mergePickup.stepForm': 'Details',
|
||
'h5.orders.mergePickup.heroTitle': 'Select waybills to merge',
|
||
'h5.orders.mergePickup.selectableCount': '{count} eligible on this page',
|
||
'h5.orders.mergePickup.predeclaredOnly': 'Pre-declared only',
|
||
'h5.orders.mergePickup.selected': '{count} selected',
|
||
'h5.orders.mergePickup.selectedWithWarehouse': '{count} selected · {warehouse}',
|
||
'h5.orders.mergePickup.next': 'Next',
|
||
'h5.orders.mergePickup.submit': 'Create pickup',
|
||
'h5.orders.mergePickup.createTitle': 'Pickup details',
|
||
'h5.orders.mergePickup.createSub': 'Step 2 · Address & time',
|
||
'h5.orders.mergePickup.needSelect': 'Select waybills first',
|
||
'h5.orders.mergePickup.emptyPredeclared': 'No eligible pre-declared waybills',
|
||
'h5.orders.mergePickup.summaryWarehouse': 'Warehouse',
|
||
'h5.orders.mergePickup.summaryOrders': 'Waybills',
|
||
'h5.orders.mergePickup.moreOptions': 'More options',
|
||
'h5.orders.mergePickup.timePresetTomorrowAm': 'Tomorrow 10:00',
|
||
'h5.orders.mergePickup.timePresetTomorrowPm': 'Tomorrow 14:00',
|
||
'h5.orders.mergePickup.timePresetDayAfterAm': 'Day after 10:00',
|
||
'h5.orders.mergePickup.timeCustom': 'Custom',
|
||
'h5.orders.mergePickup.noSender': 'Add a sender address first',
|
||
'h5.orders.mergePickup.reason.notPredeclared': 'Pre-declared only',
|
||
'h5.orders.mergePickup.reason.alreadyBound': 'Already bound to pickup',
|
||
'h5.orders.mergePickup.reason.noWarehouse': 'Missing warehouse',
|
||
'h5.orders.mergePickup.reason.differentWarehouse': 'Same warehouse required',
|
||
|
||
'h5.orders.detail.title': 'Order detail',
|
||
'h5.orders.detail.overview': 'Overview',
|
||
'h5.orders.detail.track': 'Tracking',
|
||
'h5.orders.detail.fee': 'Fees',
|
||
'h5.orders.detail.waybillNo': 'Waybill',
|
||
'h5.orders.detail.customerOrderNo': 'Customer no.',
|
||
'h5.orders.detail.trackingNo': 'Tracking no.',
|
||
'h5.orders.detail.status': 'Status',
|
||
'h5.orders.detail.channel': 'Channel',
|
||
'h5.orders.detail.country': 'Country',
|
||
'h5.orders.detail.consignee': 'Consignee',
|
||
'h5.orders.detail.weight': 'Chargeable wt',
|
||
'h5.orders.detail.noTrack': 'No tracking yet',
|
||
'h5.orders.detail.noFee': 'No fee details',
|
||
'h5.orders.detail.close': 'Close',
|
||
'h5.orders.detail.predeclareFailReason': 'Pre-declare failure',
|
||
'h5.orders.detail.predeclare': 'Pre-declare again',
|
||
'h5.orders.detail.predeclaring': 'Pre-declaring…',
|
||
'h5.orders.detail.predeclareOk': 'Pre-declared',
|
||
'h5.orders.detail.predeclareFailed': 'Pre-declare failed',
|
||
|
||
'h5.me.guestTitle': 'Welcome to Customer Center',
|
||
'h5.me.guestDesc':
|
||
'Tap authorize in WeChat to sign in. New users can register or bind first.',
|
||
'h5.me.register': 'WeChat register',
|
||
'h5.me.bind': 'Bind existing account',
|
||
'h5.me.bindWechat': 'Bind WeChat',
|
||
'h5.me.bindWechatOpenInWechat': 'Please open this page in WeChat to bind WeChat',
|
||
'h5.me.passwordLogin': 'Password login',
|
||
'h5.me.needLogin': 'Please register or sign in first',
|
||
'h5.me.scanLogin': 'WeChat authorize sign-in',
|
||
|
||
'h5.wxQr.loading': 'Loading QR code…',
|
||
'h5.wxQr.loadFailed': 'Failed to load QR code. Please refresh.',
|
||
'h5.wxQr.refresh': 'Refresh QR code',
|
||
'h5.wxQr.refreshExpired': 'Tap to refresh QR code',
|
||
'h5.wxQr.longPress': 'Long-press → “Recognize QR Code in Image”',
|
||
'h5.wxQr.valid': 'QR code is valid for 10 minutes',
|
||
'h5.wxQr.expired': 'QR code expired',
|
||
'h5.wxQr.expiredTip': 'Refresh before scanning to avoid a failed login',
|
||
'h5.wxQr.scanned': 'Scanned. Signing you in…',
|
||
'h5.wxQr.success': 'Signed in',
|
||
|
||
'h5.login.title': 'Sign in',
|
||
'h5.login.brand': 'IDE Customer Center',
|
||
'h5.login.brandName': 'IDE',
|
||
'h5.login.brandHint': 'Welcome to your IDE portal',
|
||
'h5.login.tab.wechat': 'WeChat',
|
||
'h5.login.tab.password': 'Account',
|
||
'h5.login.switchPassword': 'Sign in with password',
|
||
'h5.login.switchWechat': 'WeChat authorize sign-in',
|
||
'h5.login.or': 'or',
|
||
'h5.login.oauthLogin': 'Sign in with WeChat',
|
||
'h5.login.oauthRedirecting': 'Opening WeChat authorization…',
|
||
'h5.login.oauthLoggingIn': 'Authorized. Signing you in…',
|
||
'h5.login.oauthFailed': 'WeChat sign-in failed. Please retry.',
|
||
'h5.login.openInWechat': 'Open this page in WeChat to use WeChat authorize sign-in',
|
||
'h5.login.accountPlaceholder': 'Phone / email / customer code',
|
||
'h5.login.passwordPlaceholder': 'Enter password',
|
||
'h5.login.accountRequired': 'Please enter account',
|
||
'h5.login.passwordRequired': 'Please enter password',
|
||
'h5.login.agreePrefix': 'I have read and agree to the ',
|
||
'h5.login.privacy': 'Privacy Policy',
|
||
'h5.login.and': ' and ',
|
||
'h5.login.terms': 'Terms',
|
||
'h5.login.needAgree': 'Please accept the Privacy Policy and Terms first',
|
||
'h5.login.submit': 'Sign in',
|
||
'h5.login.submitting': 'Signing in...',
|
||
'h5.login.success': 'Signed in',
|
||
'h5.login.failed': 'Sign-in failed. Check your account and password.',
|
||
'h5.login.newUserHint': 'No account?',
|
||
'h5.login.goRegister': 'Register with WeChat',
|
||
|
||
'h5.recharge.title': 'Recharge',
|
||
'h5.recharge.amount': 'Amount',
|
||
'h5.recharge.custom': 'Custom',
|
||
'h5.recharge.customPlaceholder': 'Enter amount',
|
||
'h5.recharge.payType': 'Payment method',
|
||
'h5.recharge.wechat': 'WeChat Pay',
|
||
'h5.recharge.alipay': 'Alipay',
|
||
'h5.recharge.qrTip': 'Scan to transfer, then upload the voucher',
|
||
'h5.recharge.voucher': 'Transfer voucher (optional)',
|
||
'h5.recharge.upload': 'Upload',
|
||
'h5.recharge.submit': 'Submit for review',
|
||
'h5.recharge.needAmount': 'Please select or enter an amount',
|
||
'h5.recharge.success': 'Submitted. Pending review.',
|
||
'h5.recharge.failed': 'Submit failed',
|
||
'h5.recharge.backMe': 'Back to Me',
|
||
'h5.recharge.done': 'Done',
|
||
|
||
'h5.orderType.title': 'Choose order type',
|
||
'h5.orderType.subtitle': 'Select the type of order to create',
|
||
'h5.orderType.logistics': 'Shipping order',
|
||
'h5.orderType.logisticsDesc': 'Ship overseas — recipient & declaration',
|
||
'h5.orderType.pickup': 'Pickup order',
|
||
'h5.orderType.pickupDesc': 'Select pre-declared waybills to schedule door pickup',
|
||
|
||
'h5.contact.title': 'Add your contact details',
|
||
'h5.contact.desc':
|
||
'Please leave a phone number and email before ordering or scheduling pickup. We use them for customs documents, delivery updates, and fee confirmations — so shipments are not delayed waiting for a reply.',
|
||
'h5.contact.cancel': 'Cancel',
|
||
'h5.contact.saveContinue': 'Save & continue',
|
||
'h5.contact.saved': 'Saved — you can continue',
|
||
'h5.contact.saveFailed': 'Save failed. Please retry.',
|
||
'h5.contact.phoneInvalid': 'Enter a valid phone number',
|
||
'h5.contact.emailInvalid': 'Enter a valid email',
|
||
'h5.contact.requiredToast': 'Add phone and email to continue ordering',
|
||
'h5.pickupCreate.title': 'Create pickup order',
|
||
|
||
'h5.placeOrder.title': 'Place order',
|
||
'h5.placeOrder.stepBasic': 'Basic',
|
||
'h5.placeOrder.stepReceiver': 'Receiver',
|
||
'h5.placeOrder.stepDeclaration': 'Declaration',
|
||
'h5.placeOrder.fromPriceCheck': 'Some fields were filled from price check',
|
||
'h5.placeOrder.handoffFilled': 'Filled: {items}',
|
||
'h5.placeOrder.clientNo': 'Customer order No.',
|
||
'h5.placeOrder.clientNoPh': 'Auto-generated or enter your own',
|
||
'h5.placeOrder.product': 'Shipping method',
|
||
'h5.placeOrder.productPh': 'Select product',
|
||
'h5.placeOrder.additionalServices': 'Additional services',
|
||
'h5.placeOrder.cargo': 'Cargo type',
|
||
'h5.placeOrder.warehouse': 'Warehouse',
|
||
'h5.placeOrder.weight': 'Weight (kg)',
|
||
'h5.placeOrder.weightPh': 'Enter weight',
|
||
'h5.placeOrder.dimensions': 'Dimensions (cm)',
|
||
'h5.placeOrder.length': 'L',
|
||
'h5.placeOrder.width': 'W',
|
||
'h5.placeOrder.height': 'H',
|
||
'h5.placeOrder.sender': 'Sender address',
|
||
'h5.placeOrder.senderPh': 'Select saved sender',
|
||
'h5.placeOrder.senderEmpty': 'No sender address yet. Add one before placing an order.',
|
||
'h5.placeOrder.addSender': 'Add sender',
|
||
'h5.placeOrder.cancelAddSender': 'Cancel',
|
||
'h5.placeOrder.senderNamePh': 'Sender name',
|
||
'h5.placeOrder.senderPhonePh': 'Phone',
|
||
'h5.placeOrder.senderProvincePh': 'Province / State',
|
||
'h5.placeOrder.senderCityPh': 'City',
|
||
'h5.placeOrder.senderAddressPh': 'Street address',
|
||
'h5.placeOrder.saveSender': 'Save sender',
|
||
'h5.placeOrder.savingSender': 'Saving…',
|
||
'h5.placeOrder.senderSaved': 'Sender address saved',
|
||
'h5.placeOrder.senderSaveFailed': 'Failed to save sender address',
|
||
'h5.placeOrder.default': 'Default',
|
||
'h5.placeOrder.receiverName': 'Recipient',
|
||
'h5.placeOrder.receiverPhone': 'Phone',
|
||
'h5.placeOrder.company': 'Company',
|
||
'h5.placeOrder.telePhone': 'Tel',
|
||
'h5.placeOrder.email': 'Email',
|
||
'h5.placeOrder.streetNumber': 'House No.',
|
||
'h5.placeOrder.country': 'Country',
|
||
'h5.placeOrder.address': 'Address 1',
|
||
'h5.placeOrder.address2': 'Address 2',
|
||
'h5.placeOrder.address3': 'Address 3',
|
||
'h5.placeOrder.city': 'City',
|
||
'h5.placeOrder.province': 'State / Province',
|
||
'h5.placeOrder.zip': 'Postal code',
|
||
'h5.placeOrder.taxNo': 'Tax No.',
|
||
'h5.placeOrder.taxType': 'Tax type',
|
||
'h5.placeOrder.certificateNo': 'ID No.',
|
||
'h5.placeOrder.certificateType': 'ID type',
|
||
'h5.placeOrder.typePh': 'Number, e.g. 0',
|
||
'h5.placeOrder.eori': 'EORI',
|
||
'h5.placeOrder.vat': 'VAT',
|
||
'h5.placeOrder.currency': 'Declared currency',
|
||
'h5.placeOrder.declaredTotal': 'Declared total',
|
||
'h5.placeOrder.declaredTotalPh': 'Editable — reverse unit price',
|
||
'h5.placeOrder.inboundMethod': 'Inbound method',
|
||
'h5.placeOrder.inboundSelfShip': 'Self ship',
|
||
'h5.placeOrder.inboundDoorPickup': 'Door pickup',
|
||
'h5.placeOrder.inboundDoorPickupHint':
|
||
'Door pickup is a paid service. Please fill in the pickup address and expected time.',
|
||
'h5.placeOrder.pickupAddress': 'Pickup address',
|
||
'h5.placeOrder.pickupAddressPh': 'Select a saved sender address',
|
||
'h5.placeOrder.expectPickupTime': 'Expected pickup time',
|
||
'h5.placeOrder.expectPickupTimePh': 'Select expected pickup time',
|
||
'h5.placeOrder.carrierService': 'Carrier service',
|
||
'h5.placeOrder.carrierServicePh': 'Select a domestic pickup product (optional)',
|
||
'h5.placeOrder.doorPickupBatchHint':
|
||
'For multiple shipments, select orders in My Orders to create pickups in bulk',
|
||
'h5.placeOrder.showReceiverOptional': 'More optional',
|
||
'h5.placeOrder.hideReceiverOptional': 'Hide optional',
|
||
'h5.placeOrder.enName': 'Item name (EN)',
|
||
'h5.placeOrder.cnName': 'Item name (CN)',
|
||
'h5.placeOrder.sku': 'SKU',
|
||
'h5.placeOrder.unit': 'Unit',
|
||
'h5.placeOrder.unitPrice': 'Unit price',
|
||
'h5.placeOrder.unitWeight': 'Unit weight',
|
||
'h5.placeOrder.qty': 'Qty',
|
||
'h5.placeOrder.amount': 'Amount',
|
||
'h5.placeOrder.itemWeight': 'Weight',
|
||
'h5.placeOrder.imHsCode': 'Import HS',
|
||
'h5.placeOrder.exHsCode': 'Export HS',
|
||
'h5.placeOrder.brand': 'Brand',
|
||
'h5.placeOrder.model': 'Model',
|
||
'h5.placeOrder.material': 'Material',
|
||
'h5.placeOrder.enMaterial': 'Material (EN)',
|
||
'h5.placeOrder.purpose': 'Purpose',
|
||
'h5.placeOrder.originCountry': 'Origin',
|
||
'h5.placeOrder.category': 'Category',
|
||
'h5.placeOrder.specifications': 'Specs',
|
||
'h5.placeOrder.salesLink': 'Sales link',
|
||
'h5.placeOrder.comment': 'Comment',
|
||
'h5.placeOrder.itemTitle': 'Item {n}',
|
||
'h5.placeOrder.showMore': 'More fields',
|
||
'h5.placeOrder.hideMore': 'Hide more',
|
||
'h5.placeOrder.addItem': 'Add item',
|
||
'h5.placeOrder.removeItem': 'Remove',
|
||
'h5.placeOrder.err.itemsEmpty': 'Add at least one declaration item',
|
||
'h5.placeOrder.err.itemLine': 'Item {n}: {msg}',
|
||
'h5.placeOrder.prev': 'Back',
|
||
'h5.placeOrder.next': 'Next',
|
||
'h5.placeOrder.aiParse': 'AI parse',
|
||
'h5.placeOrder.aiParseTitle': 'Paste address · AI parse',
|
||
'h5.placeOrder.aiParseHint':
|
||
'Paste name, phone, address and ZIP together — we will fill the recipient fields',
|
||
'h5.placeOrder.aiParsePlaceholder':
|
||
'e.g. John Smith, +1 310-555-0199, 1001 Sunset Blvd, Los Angeles, CA 90001, USA',
|
||
'h5.placeOrder.aiParseCancel': 'Close',
|
||
'h5.placeOrder.aiParseConfirm': 'AI parse',
|
||
'h5.placeOrder.aiParseLoading': 'Parsing…',
|
||
'h5.placeOrder.aiParseEmpty': 'Paste an address first',
|
||
'h5.placeOrder.aiParseSuccess': 'Recipient fields updated',
|
||
'h5.placeOrder.aiParseFailed': 'Failed to parse address',
|
||
'h5.placeOrder.aiParseComplete': 'Address looks complete and was filled in',
|
||
'h5.placeOrder.aiParseRequiredOk': 'Required fields OK. ',
|
||
'h5.placeOrder.aiParseRequiredOkShort': 'Required fields OK — please double-check details',
|
||
'h5.placeOrder.aiParseIncomplete': 'Still incomplete — please fill remaining fields',
|
||
'h5.placeOrder.aiParseMissingRequired': 'Missing required: ',
|
||
'h5.placeOrder.aiParseMissingRecommended': 'Suggested: ',
|
||
'h5.placeOrder.submit': 'Confirm order',
|
||
'h5.placeOrder.submitting': 'Submitting…',
|
||
'h5.placeOrder.successTitle': 'Order created',
|
||
'h5.placeOrder.successContent': 'You can view and pay the order in Orders.',
|
||
'h5.placeOrder.goOrders': 'Go to Orders',
|
||
'h5.placeOrder.stay': 'Stay',
|
||
'h5.placeOrder.failed': 'Failed to create order',
|
||
'h5.placeOrder.failTitle': 'Order was not placed',
|
||
'h5.placeOrder.failTitleDraft': 'Pre-declaration failed (draft saved)',
|
||
'h5.placeOrder.failWhat': 'Failure reason',
|
||
'h5.placeOrder.failHow': 'Tip',
|
||
'h5.placeOrder.failRaw': 'System response',
|
||
'h5.placeOrder.failDraftNote': 'Draft saved — edit then pre-declare',
|
||
'h5.placeOrder.failNotSavedNote': 'Order was not saved',
|
||
'h5.placeOrder.failContinue': 'Continue editing',
|
||
'h5.placeOrder.failSaveDraft': 'Save as draft',
|
||
'h5.placeOrder.failSaveDraftOk': 'Saved as draft',
|
||
'h5.placeOrder.failSaveDraftFailed': 'Failed to save draft',
|
||
'h5.placeOrder.failSaveDraftGo': 'Open draft',
|
||
'h5.placeOrder.failSaveDraftStay': 'Stay',
|
||
'h5.placeOrder.failGoDraft': 'Open draft & pre-declare',
|
||
'h5.placeOrder.failAbandon': 'Discard',
|
||
'h5.placeOrder.failCancelDraft': 'Cancel (delete draft)',
|
||
'h5.placeOrder.failAbandonTitle': 'Discard this form?',
|
||
'h5.placeOrder.failAbandonContent': 'The current form will be cleared.',
|
||
'h5.placeOrder.failAbandonOk': 'Discard',
|
||
'h5.placeOrder.failAbandonDone': 'Cleared',
|
||
'h5.placeOrder.failCancelDraftTitle': 'Cancel this submission?',
|
||
'h5.placeOrder.failCancelDraftContent': 'The draft just saved will be deleted.',
|
||
'h5.placeOrder.failCancelDraftOk': 'Delete draft',
|
||
'h5.placeOrder.failKeep': 'Keep editing',
|
||
'h5.placeOrder.failCancelDraftDone': 'Draft deleted',
|
||
'h5.placeOrder.failCancelDraftFailed': 'Failed to delete',
|
||
'h5.placeOrder.optionsFailed': 'Failed to load options',
|
||
'h5.placeOrder.err.clientNo': 'Enter customer order No.',
|
||
'h5.placeOrder.err.product': 'Select shipping method',
|
||
'h5.placeOrder.err.cargo': 'Select cargo type',
|
||
'h5.placeOrder.err.warehouse': 'Select warehouse',
|
||
'h5.placeOrder.err.weight': 'Enter weight',
|
||
'h5.placeOrder.err.length': 'Enter length',
|
||
'h5.placeOrder.err.width': 'Enter width',
|
||
'h5.placeOrder.err.height': 'Enter height',
|
||
'h5.placeOrder.err.sender': 'Select a sender address',
|
||
'h5.placeOrder.err.senderEmpty': 'Add a sender address before placing an order',
|
||
'h5.placeOrder.err.inboundPickupSender': 'Door pickup requires a pickup address',
|
||
'h5.placeOrder.err.expectPickupTime': 'Door pickup requires an expected pickup time',
|
||
'h5.placeOrder.err.senderForm': 'Enter sender name and street address',
|
||
'h5.placeOrder.err.receiverName': 'Enter recipient',
|
||
'h5.placeOrder.err.receiverPhone': 'Enter phone',
|
||
'h5.placeOrder.err.country': 'Select country',
|
||
'h5.placeOrder.err.address': 'Enter address',
|
||
'h5.placeOrder.err.zip': 'Enter postal code',
|
||
'h5.placeOrder.err.currency': 'Select currency',
|
||
'h5.placeOrder.err.enName': 'Enter English item name',
|
||
'h5.placeOrder.err.unitPrice': 'Enter unit price',
|
||
'h5.placeOrder.err.unitWeight': 'Enter unit weight',
|
||
'h5.placeOrder.err.qty': 'Enter quantity',
|
||
|
||
'h5.me.coupons': 'Coupons',
|
||
'h5.me.couponsDesc': 'Save more on every order',
|
||
'h5.me.couponsDescReady': '{count} ready to use',
|
||
'h5.me.invite': 'Invite',
|
||
'h5.me.inviteDesc': 'Invite friends — both win',
|
||
'h5.me.commission': 'Commission',
|
||
'h5.me.commissionDesc': 'Withdraw or top up balance',
|
||
'h5.me.placeOrder': 'Order',
|
||
'h5.me.placeOrderDesc': 'Ship in a few taps',
|
||
'h5.me.section.services': 'Services',
|
||
'h5.me.section.account': 'Account',
|
||
'h5.me.section.journey': 'Shipping guide',
|
||
|
||
'h5.journey.title': 'Shipping guide',
|
||
'h5.journey.lead': 'Quote → order → pickup → pay → deliver',
|
||
'h5.journey.expand': 'Expand',
|
||
'h5.journey.collapse': 'Collapse',
|
||
'h5.journey.summaryPay': '{count} pending payment(s) — expand to continue',
|
||
'h5.journey.payCta': 'Pay {count} order(s)',
|
||
'h5.journey.badge': 'For you',
|
||
'h5.journey.tip': 'Tip: create a logistics order first, then ship or request pickup. Pending payments highlight “Pay”.',
|
||
'h5.journey.step.price': 'Get a quote',
|
||
'h5.journey.step.priceHint': 'Pick country & weight, compare first',
|
||
'h5.journey.step.warehouse': 'Warehouse address',
|
||
'h5.journey.step.warehouseHint': 'Copy recipient / phone / address',
|
||
'h5.journey.step.order': 'Create logistics order',
|
||
'h5.journey.step.orderHint': 'Fill receiver & declaration',
|
||
'h5.journey.step.ship': 'Pickup / ship to warehouse',
|
||
'h5.journey.step.shipHint': 'After ordering: self-ship or request pickup',
|
||
'h5.journey.step.pay': 'Pay freight',
|
||
'h5.journey.step.payHint': 'Pay pending orders with balance',
|
||
'h5.journey.step.done': 'Track & deliver',
|
||
'h5.journey.step.doneHint': 'Follow tracking until signed',
|
||
|
||
'h5.journey.warehouse.title': 'Warehouse addresses',
|
||
'h5.journey.warehouse.lead': 'Ship to these warehouses and note your customer code for inbound.',
|
||
'h5.journey.warehouse.empty': 'No warehouse addresses',
|
||
'h5.journey.warehouse.copy': 'Copy',
|
||
'h5.journey.warehouse.recipient': 'Recipient: ',
|
||
'h5.journey.warehouse.phone': 'Phone: ',
|
||
'h5.journey.warehouse.address': 'Address: ',
|
||
|
||
'h5.journey.ship.title': 'Pickup / ship to warehouse',
|
||
'h5.journey.ship.lead': 'Create a logistics order first. Then either self-ship to the warehouse, or add a sender address and request pickup.',
|
||
'h5.journey.ship.selfTitle': 'I’ll ship myself',
|
||
'h5.journey.ship.selfDesc': 'Copy warehouse address and mark your customer code',
|
||
'h5.journey.ship.pickupTitle': 'Request pickup',
|
||
'h5.journey.ship.pickupDesc': 'Add sender address, then create a pickup (after ordering)',
|
||
'h5.journey.ship.senderTitle': 'Sender addresses',
|
||
'h5.journey.ship.addSender': 'Add',
|
||
'h5.journey.ship.cancelAdd': 'Cancel',
|
||
'h5.journey.ship.noSender': 'No sender address yet — add one first',
|
||
'h5.journey.ship.senderName': 'Sender name',
|
||
'h5.journey.ship.phone': 'Phone',
|
||
'h5.journey.ship.province': 'State / Province',
|
||
'h5.journey.ship.city': 'City',
|
||
'h5.journey.ship.address': 'Street address',
|
||
'h5.journey.ship.saveSender': 'Save sender address',
|
||
'h5.journey.ship.senderRequired': 'Enter sender name and address',
|
||
'h5.journey.ship.senderSaved': 'Sender address saved',
|
||
'h5.journey.ship.senderFailed': 'Failed to save',
|
||
'h5.journey.ship.pickupFormTitle': 'Create pickup',
|
||
'h5.journey.ship.warehouse': 'Warehouse',
|
||
'h5.journey.ship.product': 'Shipping product',
|
||
'h5.journey.ship.cargoName': 'Cargo name',
|
||
'h5.journey.ship.weight': 'Weight (kg)',
|
||
'h5.journey.ship.pickupTime': 'Pickup time',
|
||
'h5.journey.ship.pickupTimePh': 'YYYY-MM-DD HH:mm:ss',
|
||
'h5.journey.ship.createPickup': 'Submit pickup',
|
||
'h5.journey.ship.pickSender': 'Select a sender address',
|
||
'h5.journey.ship.pickWarehouse': 'Select a warehouse',
|
||
'h5.journey.ship.pickProduct': 'Select a product',
|
||
'h5.journey.ship.pickCargo': 'Enter cargo name',
|
||
'h5.journey.ship.pickWeight': 'Enter a valid weight',
|
||
'h5.journey.ship.pickupOk': 'Pickup created',
|
||
'h5.journey.ship.pickupFailed': 'Failed to create pickup',
|
||
'h5.me.todoTitle': 'To-do',
|
||
|
||
'h5.coupons.title': 'My coupons',
|
||
'h5.coupons.empty': 'No coupons',
|
||
'h5.coupons.unnamed': 'Coupon',
|
||
'h5.coupons.tab.available': 'Available',
|
||
'h5.coupons.tab.used': 'Used',
|
||
'h5.coupons.tab.expired': 'Expired',
|
||
'h5.coupons.minOrder': 'Min order {amount}',
|
||
'h5.coupons.use': 'Use now',
|
||
'h5.coupons.discountUnit': ' off',
|
||
'h5.coupons.expiringSoon': 'Expiring soon',
|
||
'h5.coupons.badge.newcomer': 'New',
|
||
'h5.coupons.validLabel': 'Valid',
|
||
'h5.coupons.howLabel': 'How',
|
||
'h5.coupons.how.fixed': 'Select at checkout. Min order {amount} to redeem',
|
||
'h5.coupons.how.direct': 'Select at checkout for an instant face-value off',
|
||
'h5.coupons.how.percent': 'Select at checkout. Min order {amount} for percent off',
|
||
'h5.coupons.how.shipping': 'Select at checkout. Min order {amount} for shipping off',
|
||
|
||
'h5.invite.title': 'Invite friends',
|
||
'h5.invite.tab.share': 'Share invite',
|
||
'h5.invite.tab.referees': 'Invited',
|
||
'h5.invite.lead':
|
||
'Share your code or QR. Friends open it in WeChat, finish official-account registration, and both unlock rewards.',
|
||
'h5.invite.code': 'Invite code',
|
||
'h5.invite.link': 'Invite link (open in WeChat)',
|
||
'h5.invite.copy': 'Copy',
|
||
'h5.invite.copySuccess': 'Copied',
|
||
'h5.invite.copyShare': 'Copy invite message',
|
||
'h5.invite.share': 'Share',
|
||
'h5.invite.shareTitle': 'Join with my invite',
|
||
'h5.invite.qrTip': 'Friends scan or long-press in WeChat to register via the official account',
|
||
'h5.invite.posterAlt': 'Invite poster',
|
||
'h5.invite.posterLoading': 'Generating poster…',
|
||
'h5.invite.posterFailed': 'Failed to generate poster. Please retry.',
|
||
'h5.invite.posterRetry': 'Retry',
|
||
'h5.invite.savePoster': 'Save poster',
|
||
'h5.invite.posterSaved': 'Poster saved',
|
||
'h5.invite.posterTip': 'Long-press to recognize the QR, or save and share with friends',
|
||
'h5.invite.referees': 'Invited friends',
|
||
'h5.invite.refereesEmpty': 'No friends have registered with your invite yet',
|
||
'h5.invite.empty': 'No invite data',
|
||
|
||
'h5.commission.title': 'My commission',
|
||
'h5.commission.balance': 'Withdrawable',
|
||
'h5.commission.total': 'Total earned',
|
||
'h5.commission.pending': 'Pending',
|
||
'h5.commission.transfer': 'Transfer to balance',
|
||
'h5.commission.withdraw': 'Withdraw',
|
||
'h5.commission.empty': 'No commission data',
|
||
'h5.commission.transferOk': 'Transfer submitted',
|
||
'h5.commission.withdrawOk': 'Withdraw request submitted',
|
||
'h5.commission.amountPh': 'Enter amount',
|
||
|
||
'h5.pay.title': 'Confirm payment',
|
||
'h5.pay.amountDue': 'Amount due',
|
||
'h5.pay.waybillNo': 'Waybill',
|
||
'h5.pay.orderTotal': 'Order due',
|
||
'h5.pay.methodBalance': 'Pay with balance',
|
||
'h5.pay.methodHint': 'Will be deducted from your account balance',
|
||
'h5.pay.confirm': 'Pay now',
|
||
'h5.pay.paying': 'Paying…',
|
||
'h5.pay.cancel': 'Cancel',
|
||
'h5.pay.empty': 'No payable orders',
|
||
'h5.pay.noFeeRows': 'No fee details',
|
||
'h5.pay.success': 'Paid successfully',
|
||
'h5.pay.failed': 'Payment failed',
|
||
'h5.pay.invalidAmount': 'Invalid amount — cannot pay',
|
||
'h5.pay.loadFailed': 'Failed to load fee details',
|
||
'h5.pay.balanceLowTitle': 'Insufficient balance',
|
||
'h5.pay.balanceLow': 'Your balance is not enough for this payment. Recharge first, then come back to pay.',
|
||
'h5.pay.goRecharge': 'Recharge',
|
||
'h5.pay.later': 'Later',
|
||
'h5.me.balance': 'Balance',
|
||
'h5.me.recharge': 'Recharge',
|
||
'h5.me.points': 'Points',
|
||
'h5.me.pointsToNext': '{points} to {name}',
|
||
'h5.me.pointsTopLevel': 'Top level reached',
|
||
'h5.me.lowBalance': 'Low balance — recharge soon',
|
||
'h5.me.greet.morning': 'Good morning',
|
||
'h5.me.greet.noon': 'Good noon',
|
||
'h5.me.greet.afternoon': 'Good afternoon',
|
||
'h5.me.greet.evening': 'Good evening',
|
||
'h5.me.greet.night': 'Still up late',
|
||
'h5.me.todoAction': '{count} pending payment',
|
||
'h5.me.todoIssue': '{count} issue',
|
||
'h5.me.todoGo': 'Handle',
|
||
'h5.me.pickupTitle': 'Pickup orders',
|
||
'h5.me.pickupSummary': '{count} order(s) — tap to view',
|
||
'h5.me.pickupEmpty': 'No pickup orders yet. Choose "Pickup order" when placing orders to merge pickup.',
|
||
'h5.me.pickupGo': 'View',
|
||
'h5.pickup.title': 'Pickup orders',
|
||
'h5.pickup.empty': 'No pickup orders yet. Choose "Pickup order" when placing orders to merge pickup.',
|
||
'h5.pickup.loadFailed': 'Failed to load',
|
||
'h5.pickup.loadMore': 'Load more',
|
||
'h5.pickup.loading': 'Loading…',
|
||
'h5.pickup.pickupTime': 'Scheduled pickup',
|
||
'h5.pickup.parcelCount': '{count} parcel(s)',
|
||
'h5.pickup.filter.all': 'All',
|
||
'h5.pickup.filter.pendingPayment': 'Unpaid',
|
||
'h5.pickup.detail.title': 'Pickup order detail',
|
||
'h5.pickup.detail.receivable': 'Pickup fee due',
|
||
'h5.pickup.detail.warehouse': 'Warehouse',
|
||
'h5.pickup.detail.expectTime': 'Expected pickup',
|
||
'h5.pickup.detail.sender': 'Pickup address',
|
||
'h5.pickup.detail.carrierWaybill': 'Carrier waybill',
|
||
'h5.pickup.detail.createTime': 'Created',
|
||
'h5.pickup.detail.orders': 'Linked shipments',
|
||
'h5.pickup.detail.noOrders': 'No linked shipments',
|
||
'h5.pickup.detail.pay': 'Pay pickup fee',
|
||
'h5.pickup.detail.payOk': 'Pickup fee paid',
|
||
'h5.pickup.rebind.stepAdd': 'Add shipments',
|
||
'h5.pickup.rebind.heroTitle': 'Select shipments to add',
|
||
'h5.pickup.rebind.hint': 'Pre-declared only, not bound to pickup; warehouse: {warehouse}',
|
||
'h5.pickup.rebind.confirmAdd': 'Confirm add',
|
||
'h5.pickup.rebind.addHint': 'Choose pre-declared shipments in the same warehouse as this pickup order',
|
||
'h5.pickup.rebind.goAdd': 'Select shipments',
|
||
'h5.pickup.rebind.confirmRemove': 'Confirm remove',
|
||
'h5.pickup.rebind.removeCount': '{count} selected',
|
||
'h5.pickup.rebind.needRemove': 'Select shipments to remove first',
|
||
'h5.pickup.quick.pay': 'Pay',
|
||
'h5.pickup.quick.schedule': 'Schedule',
|
||
'h5.pickup.quick.rebind': 'Rebind',
|
||
'h5.pickup.quick.cancel': 'Cancel',
|
||
'h5.me.editProfile': 'Edit profile',
|
||
'h5.me.addressManage': 'Addresses',
|
||
'h5.me.resetPassword': 'Change password',
|
||
'h5.me.language': 'Switch language',
|
||
'h5.me.followOfficial': 'Follow official account',
|
||
'h5.me.followOfficialMissing': 'Official account link is not configured. Please contact support.',
|
||
'h5.me.logout': 'Sign out',
|
||
'h5.me.logoutConfirm': 'Sign out now?',
|
||
'h5.me.customerCode': 'Code',
|
||
'h5.me.copySuccess': 'Copied',
|
||
'h5.me.defaultName': 'Customer',
|
||
'h5.me.oldPassword': 'Current password',
|
||
'h5.me.newPassword': 'New password',
|
||
'h5.me.confirmPassword': 'Confirm password',
|
||
'h5.me.passwordRequired': 'Enter current and new password',
|
||
'h5.me.passwordMismatch': 'Passwords do not match',
|
||
'h5.me.changePasswordSuccess': 'Password changed. Please sign in again.',
|
||
'h5.me.updateSuccess': 'Saved',
|
||
'h5.me.updateFailed': 'Save failed',
|
||
'h5.me.save': 'Save',
|
||
'h5.address.title': 'Addresses',
|
||
'h5.address.addTitle': 'Add address',
|
||
'h5.address.editTitle': 'Edit address',
|
||
'h5.address.add': 'Add address',
|
||
'h5.address.edit': 'Edit',
|
||
'h5.address.delete': 'Delete',
|
||
'h5.address.default': 'Default',
|
||
'h5.address.setDefault': 'Set default',
|
||
'h5.address.setDefaultTip': 'Set as default for this type',
|
||
'h5.address.setDefaultOk': 'Default address updated',
|
||
'h5.address.deleteOk': 'Deleted',
|
||
'h5.address.empty': 'No addresses yet',
|
||
'h5.address.loadFailed': 'Failed to load addresses',
|
||
'h5.address.saveFailed': 'Save failed',
|
||
'h5.address.typeLabel': 'Address type',
|
||
'h5.address.type.sender': 'Sender',
|
||
'h5.address.type.receiver': 'Receiver',
|
||
'h5.address.type.return': 'Return',
|
||
'h5.address.senderName': 'Contact',
|
||
'h5.address.senderNamePh': 'Name',
|
||
'h5.address.phone': 'Phone',
|
||
'h5.address.addressName': 'Alias',
|
||
'h5.address.addressNamePh': 'e.g. Home / Office',
|
||
'h5.address.countryCode': 'Country code',
|
||
'h5.address.province': 'State / Province',
|
||
'h5.address.city': 'City',
|
||
'h5.address.street': 'Street address',
|
||
'h5.address.streetPh': 'Street, building, unit…',
|
||
'h5.address.zipCode': 'ZIP / Postal',
|
||
'h5.address.nameRequired': 'Enter contact name',
|
||
'h5.address.streetRequired': 'Enter street address',
|
||
};
|