const messages = { en: { navigation: { routes: { "pages/index/index": "Luju Apartments", "pkgAccount/auth_result/auth_result": "Verification Result", "pkgAccount/login/login": "Sign In", "pkgAccount/register/register": "Register", "pkgAccount/registration_records/registration_records": "Registration Records", "pkgBooking/book/book": "Booking Confirm", "pkgBooking/book_viewing/book_viewing": "Book Viewing", "pkgBooking/booking_detail/booking_detail": "Booking Detail", "pkgBooking/booking_list/booking_list": "Booking Records", "pkgBooking/pay/pay": "Online Payment", "pkgExplore/download/download": "Gallery", "pkgExplore/filter/filter": "Filter", "pkgExplore/room_detail/room_detail": "Room Detail", "pkgExplore/sign/sign": "Check In", "pkgExplore/store_detail/store_detail": "Community Detail", "pkgExplore/vr_preview/vr_preview": "VR Viewing", "pkgService/application_detail/application_detail": "Application Detail", "pkgService/contract_detail/contract_detail": "Contract Detail", "pkgService/contract_sign/contract_sign": "Contract Signing", "pkgService/device_control/device_control": "Device Control", "pkgService/lock_control/lock_control": "Smart Lock", "pkgService/message_detail/message_detail": "Message Detail", "pkgService/my_application/my_application": "My Applications", "pkgService/my_contract/my_contract": "My Contracts", "pkgService/room_inspection/room_inspection": "Inspection", "pkgService/service_stub/service_stub": "Service Center", "pkgService/smart_control/smart_control": "Smart Control", "pkgService/ticket_center/ticket_center": "Work Orders", "pkgService/ticket_workbench/ticket_workbench": "Work Order", "pkgService/lost_found_publish/lost_found_publish": "Lost and Found", "pkgService/submit_request/submit_request": "Submit Request", "pkgService/utility_recharge/utility_recharge": "Utility Recharge" } }, pages: { index: { component: { MessageCenterTab: { acknowledged: "Got It", butler: "Butler", checkResultDefault: "Inspection Result", checkResultFix: "Needs Fix", checkResultNormal: "Normal", checkResultReview: "Pending Review", checkStatusDefault: "Status Pending", checkStatusDone: "Completed", checkStatusPending: "Pending", checkStatusProcessing: "Processing", checkTypeCheckout: "Checkout Check", checkTypeDefault: "Inspection Record", checkTypeRoutine: "Routine Check", checkTypeSpecial: "Special Check", checkerLabel: "Inspector: ", compensationLabel: "Compensation: ", emptyDesc: "Notifications and inspection reminders will appear here.", emptyTitle: "No Messages", inspectionChecker: "Inspector", inspectionCountUnit: "alerts", inspectionDesc: "Inspection reminders are summarized automatically.", inspectionItemPrefix: "Item {index}", inspectionItemsTitle: "Inspection Items", inspectionNeedManualHandle: "Inspection reminders need manual handling", inspectionRemarkTitle: "Inspection Remark", inspectionResult: "Result", inspectionStatus: "Status", inspectionSummaryFallback: "Inspection reminder, tap to view details.", inspectionTitle: "Inspection", loadingDesc: "Syncing notifications and inspections.", loadingTitle: "Loading Messages", markNotificationRead: "Read Notifications", noUnreadNotification: "No unread notifications", notificationFallbackDesc: "You have a new system message", notificationFallbackTitle: "System Notification", payment: "Payment", problemLabel: "Problem: ", recentMessages: "Recent", remarkLabel: "Remark: ", remoteMarkedRead: "Notifications marked as read", remoteMarkedReadWithInspection: "Notifications marked as read, inspection reminders still need handling", subtitle: "You have {count} unread messages", system: "System", title: "Messages", unassignedRoom: "Room Unlinked", viewDetail: "Details" }, MyApplicationTab: { agreeAndPay: "Agree and Pay", apartmentLabel: "Apartment", cancelOrder: "Cancel Order", cancelOrderContent: "This will close the current unpaid deposit order. Continue?", cancelViewingContent: "This will close the current viewing request. Continue?", cancelOrderFailed: "Failed to cancel order", cancelOrderLoading: "Canceling...", cancelOrderSuccess: "Order canceled", cancelOrderTitle: "Cancel Order", continuePay: "Continue Pay", currentStepTag: "Current", dateRangeJoiner: " to ", depositNoticeTitle: "Rental Deposit Notice", emptyDesc: "You have not submitted any application yet. Go select a room to start a stay or viewing application.", emptyTitle: "No applications yet", goSelectRoom: "Select Room", leaseTermLabel: "Lease Term", loadError: "Failed to load applications", loadingDesc: "Syncing your application records. Please wait.", missingApplicationCode: "Missing application number", missingBillCode: "Missing application bill number", missingContractNo: "Missing contract number", noPendingDepositBill: "No pending deposit bill available", noMore: "No more applications", occupantLabel: "Resident", pageDesc: "Your stay and viewing application records", pageTitle: "My Applications", payDeposit: "Pay Deposit", fetchPaymentParamsFailed: "Failed to get payment parameters", fetchWechatLoginCodeFailed: "Failed to get WeChat login code", loadingBill: "Loading bill...", loadingPayment: "Opening payment...", depositPaymentDesc: "Deposit Payment", paymentStatusLabel: "Payment Status", paymentStatusPending: "Pending Payment", paymentStatusPaid: "Paid", paymentStatusRefunded: "Refunded", paymentStatusExempt: "No Payment Needed", paymentSuccess: "Payment succeeded", paymentCanceled: "Payment canceled", paymentFailed: "Payment failed", pendingPaymentAmountLabel: "Order Amount", pendingPaymentDescLabel: "Description", pendingPaymentExpireLabel: "Time Left", pendingPaymentExpired: "Expired", pendingPaymentOrderNoLabel: "Payment Order No.", pendingPaymentTitle: "Unfinished Payment", pullUpMore: "Pull up to load more", refresh: "Refresh Status", refreshEmptySuccess: "No application found. Reservation records synced.", refreshSuccess: "Application status refreshed", refreshing: "Refreshing...", refreshAction: "Refresh", remarkLabel: "Remarks", reservationFlowDesc: "Progress of the current reservation order", reservationFlowTitle: "Reservation Flow", reservationOrderFallback: "Reservation", reservationOrderNoLabel: "Order No.", roomNoLabel: "Room No.", reservationRoomLabel: "Room Type", reservationStatusLabel: "Order Status", contractPendingReviewHint: "Contract signed, waiting for review", inspectionPendingReviewHint: "Inspection under review", checkinPendingHint: "Move-in is being processed, please wait", scrollToRead: "Scroll to bottom", refreshFlowAction: "Refresh Flow", statusApproved: "Approved", statusFinished: "Closed", statusPending: "Pending", statusPendingPayment: "Please Pay Deposit", statusProcessing: "Processing", statusRejected: "Rejected", statusReminderTitle: "Current Progress", statusWaitingRoomAssign: "Waiting for Room Arrangement", stayApplicationTitle: "Stay Application", submittedAtLabel: "Submitted At", toolbarSummary: "{total} applications", viewingNoDepositToast: "Viewing requests do not require a deposit", viewingApplicationTitle: "Viewing Request", viewingTimeLabel: "Viewing Time" }, ProfileCenterTab: { activities: "Activities", application: "Applications", applicationStatus: "Application Status", bill: "Billing", bookingList: "Bookings", bookingNo: "Booking No.", bookingPlaceholder: "Your booking will appear here after payment", bookingProgressDesc: "Booking will be reviewed after payment. Butler will be assigned upon approval.", bookingStatusTitle: "Booking Progress", clickToLogin: "Click to Sign In", comingSoon: "Soon", comingSoonDesc: "{title} is under development. The formal entry and data will be available here later.", completeFormBeforeSubmit: "Please complete the form before submitting.", contact: "Contact", contract: "My Contract", contractPendingDesc: "You have contracts waiting for signature. Please review them soon.", contractPendingTag: "Pending", contractStatusTitle: "Contract Status", coreServices: "My Services", daysIn: "Days Stayed", done: "Done", edit: "Edit", exclusiveButler: "Exclusive Butler", guest: "Guest", languageSwitch: "Language", languageToggleLabel: "中文", logout: "Log Out", logoutConfirmContent: "Are you sure to log out?", logoutConfirmTitle: "Notice", logoutSuccess: "Logged out", notSubmittedYet: "No registration submitted", onlineService: "24/7 Online Service", pendingCountText: "Pending Contracts", points: "Points", registrationApprovedDesc: "Registration approved, ready to sign in", registrationEmptyDesc: "No registration submitted", registrationPendingDesc: "Registration is under review", registrationRecordGuestDesc: "You can still review registration records submitted with this Wechat account before signing in.", registrationRecordSubmittedDesc: "A registration has been submitted with this Wechat account. You can review its history and approval status.", registrationRecordTitle: "Registration Records", registrationRejectedDesc: "Registration rejected, please review the reason", registrationStatusTitle: "Registration Status", remind: "Remind", settings: "Preferences", statusApproved: "Approved", statusPending: "Under Review", statusRejected: "Rejected", submitRequest: "Submit Request", userFallback: "User", viewDetail: "Details", viewNow: "View Now" }, SelectRoomTab: { all: "All", allAreas: "All Areas", allTags: "All Tags", apartmentDetail: "Apartment Detail", areaStatus: "Area Status", areaStatusDesc: "No areas matched the current filter.", areaUnavailableTitle: "Area information unavailable", bookViewing: "Book Viewing", defaultAreaAddressPrefix: "Located at ", distancePlaceholder: "Nearby", emptyAreaDesc: "No rooms available under the current filters.", emptyAreaTitle: "No matched rooms", emptyBannerDesc: "No active banners available.", emptyBannerTitle: "No banners", learnMore: "Learn More", loadingAreaStatus: "Loading areas", pricePending: "TBD", priceUnit: "/month", searchApartment: "Search by area, apartment or room type", shareTitle: "Luju Apartments - International Youth Community", sortDefault: "Default", sortNameAsc: "Name", sortPriceAsc: "Price: Low to High", sortPriceDesc: "Price: High to Low", tagFilter: "Tags", viewCommunity: "View Details" }, StayServiceTab: { activeStatus: "Active", applicationInfoTitle: "Stay Application Info", applicationCanceled: "Application canceled", addSmartDevice: "Add Smart Device", bedPrefix: "Bed {label}", billCount: "Bills", billEmpty: "No unpaid bills", billRecordFallback: "Bill", billType: "Type", billUnit: "", bookedRoomType: "Room Type", bookingInfo: "Booking Info", bookingPendingDesc: "Deposit has been paid. The booking is waiting for approval and butler assignment.", bookingPendingNote: "Your booking has been submitted. More stay details will appear after review.", bookingPendingTitle: "Your booking is under review", butler: "Community Butler", callNow: "Call", checkinStep: "Check-in", checkinArrangement: "Check-in Arrangement", communityEvent: "Community Events", completeFormBeforeSubmit: "Please complete the form before submitting.", cancelApplication: "Cancel Application", cancelApplicationFailed: "Failed to cancel application", confirmPayAction: "Confirm and Pay", confirmPayInfo: "Confirm Payment Info", confirmWechatPayHint: "WeChat Pay will be launched after confirmation", contactPhonePrefix: "Phone ", contractPendingNote: "The flow stays at the contract step until the contract is signed.", contractSignedPendingReview: "Contract signed, waiting for manager review", contractSignedPendingReviewTitle: "Contract signed, waiting for manager review", contractRoom: "Contract Room", contractStep: "Contract", controllable: "Controllable", currentStageTitle: "Current Stage", currentStay: "Current Stay", deviceFallback: "Device {index}", goSelectRoom: "Explore Rooms", inspectionSheet: "Inspection Sheet", inspectionSubmittedPendingReview: "Inspection submitted, waiting for manager review", joinEvent: "Join Now", lastCreateTime: "Latest", leaseTerm: "Lease", loadingApplicationDetail: "Syncing application details, please wait...", loadingButlerInfo: "Syncing butler info...", loadingManagerInfo: "Loading butler info", loadingPaymentPreview: "Syncing payment preview, please wait...", loadingShort: "Syncing", managerContactSummary: "{count} butlers are available in this area", managementContacts: "Dorm Managers & Admins", dormitoryManagerTag: "Dorm Mgr", counselorTag: "Admin", noManagerContacts: "No management contacts", managerFallback: "Community Butler", managerInitialFallback: "B", managerWechatCopied: "Butler Wechat copied", mealDeliveryJumpFailed: "Failed to open the ordering mini-program", multiButlerName: "{name} +{count}", myBill: "Monthly Bill", noButlerInfo: "No butler information yet", noContactPhone: "No contact number", noManagerWechat: "No butler Wechat", notCheckedInDesc: "We provide premium co-living services.\nPlease explore and find your suite first.", notCheckedInTitle: "No Leased Room Yet", onDutyCount: "{count} on duty", online: "Online · Response < 5 mins", onlineSingle: "1 online", paidOff: "Paid Off", pendingDispatch: "Pending Dispatch", payBill: "Pay Now", pendingAssignment: "Pending assignment", pendingContractFound: "Pending contract found", pendingSync: "Pending", payMethodLabel: "Payment Plan", primaryButlerTag: "Lead", publicService: "Premium Services", refreshFailed: "Refresh failed, please try again later", refreshStatus: "Refresh Status", refreshing: "Refreshing...", reviewStep: "Review", roomTypeInfo: "Room Info", applicationPendingTitle: "Application submitted, waiting for review", applicationPendingDesc: "Your application has been submitted. It will enter the room inspection step after butler review.", applicationPendingNote: "Application is under review. Please wait for butler notification.", applicationPendingPaymentTitle: "Please pay the deposit", applicationPendingPaymentDesc: "Your stay application has been submitted. Please pay the deposit to confirm your booking.", applicationPendingPaymentNote: "After the deposit is paid, the manager will review your application and arrange the next steps.", viewingPendingTitle: "Viewing request submitted, waiting for confirmation", viewingPendingDesc: "Your viewing request has been submitted. Please wait for the manager to confirm the viewing schedule.", viewingPendingNote: "No deposit is required for viewing requests. Please watch for the viewing time and follow-up notice.", viewingNoDepositToast: "Viewing requests do not require a deposit", inspectionPendingTitle: "Please schedule and complete room inspection", inspectionPendingDesc: "The flow has entered the room inspection step. Please complete the inspection on time.", inspectionPendingNote: "After the room inspection is completed, the system will automatically proceed to contract signing.", billPendingTitle: "Bill generated, please pay as soon as possible", billPendingDesc: "The flow has entered the bill payment step. Complete payment to proceed to check-in.", billPendingNote: "Please complete the bill payment within the specified time. Overdue payment may affect your room selection.", signContractDoneTitle: "Contract signed, waiting for check-in", signContractDoneNote: "Contract signing is complete. Please wait for butler notification for check-in.", signContractPendingReview: "Your contract has been signed and is currently waiting for manager review. After approval, the bill payment step will begin.", applicationNo: "Application No.", billNo: "Bill No.", applicationStep: "Application", inspectionStep: "Inspection", billStep: "Bill", contractShort: "Contract", checkinShort: "Check-in", applying: "Applying", inspecting: "Inspecting", pendingPayment: "Pending Payment", pendingSignature: "Pending Signature", pendingCheckin: "Pending Check-in", roomDeviceUnconfigured: "Smart devices are not configured for this room", signContract: "Sign Contract", signContractDesc: "A contract is ready for signature. You are now at the contract signing step. Complete signing to proceed to bill payment.", signContractNow: "Please sign your contract", smartAvailableAfterCheckin: "Smart devices are available after check-in", smartControl: "Smart Control", smartLockEntryDesc: "My Keys · Door Password · Fingerprint Enrollment", smartDeviceConnected: "{count} smart devices connected", smartDeviceEmpty: "No smart devices in this room", smartDeviceLoadFailed: "Failed to load smart devices", smartDeviceSyncFailed: "Smart device sync failed", statusUpdated: "Status updated", stayService: "Service Request", submitBookingStep: "Submit", submitRequest: "Submit Request", syncingSmartDevices: "Syncing smart devices...", title: "My Stay", unpaid: "Unpaid", unknownText: "Unknown", viewAll: "View All", viewBill: "View Bills", currentTaskTitle: "Current Task", flowProgressTitle: "Flow Progress", nextFlowFallback: "Next Step", nextStepDispatchPrefix: "Waiting for manager to send", nextStepDispatchSuffix: ", and the next step will continue after it is sent.", nextStepDispatchDescPrefix: "The current flow is waiting for the manager to send", paymentActionLabel: "Current Payment", goInspection: "Book Inspection", profileSignedDesc: "Your accommodation contract has been signed. The manager will arrange the check-in process for you soon.", profileInspectionPendingDesc: "Your inspection form has been submitted successfully and is currently waiting for manager review. After approval, the contract signing step will begin.", profileContractPendingDesc: "Your contract has been signed and is currently waiting for manager review. After approval, the bill payment step will begin.", profileDepositPendingDesc: "Your deposit has been paid successfully. The current application is waiting for manager review and follow-up handling.", processedDepositPendingTitle: "Deposit paid, waiting for manager handling", statusWaitingRoomAssign: "Waiting for Room Arrangement", waitingRoomAssignDesc: "There is currently no pending deposit bill. The butler is arranging a room for you, please wait patiently.", viewDetail: "View Details" } }, index: { loadingBrand: "Luju Apartments", shareTitle: "Luju Apartments - International Youth Community", tabMessageCenter: "Messages", tabMyApplication: "Applications", tabProfileCenter: "Profile", tabSelectRoom: "Explore", tabStayService: "Stay", myTodo: "My Tasks", noTodoNow: "No pending items right now", pendingCount: "{count} pending", currentPendingCount: "{count} items pending", noTodos: "No to-dos", viewTodo: "View", itemUnit: "items", pendingContract: "Pending Contracts", inspectionTodo: "Inspection", pendingTask: "Pending Task", todoType: "Pending Type", goHandle: "Handle", goPay: "Pay", goSign: "Sign", goInspect: "Inspect", unableHandle: "Unavailable", todoCodeMissing: "The current pending order number is incomplete", todoRouteMissing: "No route is configured for this task type yet", todoJumpFailed: "Failed to open the pending item", todoEmptyType: "No actionable pending details are available for the current type", todoActionDetail: "Tap the order number below to view pending details", todoActionTicket: "Tap the order number below to identify the work order and continue processing", todoActionBill: "Tap the order number below to open bill processing", todoActionContract: "Tap the order number below to open contract signing", todoActionInspection: "Tap the order number below to open inspection processing", todoUnknownTicketType: "Work order type could not be recognized", pendingContractTitle: "Pending Contract", inspectionDraft: "Draft", inspectionMoveIn: "Move-in Inspection", inspectionInProgress: "In Progress" } } }, pkgAccount: { auth_result: { auth_result: { approvedPleaseLogin: "Approved. Please sign in.", descApproved: "Your registration is approved and you can sign in now.", descPendingDefault: "Your application is under review and sign-in is unavailable before approval.", descPendingRecords: "This page shows the approval status of the selected application. Pull down or tap the button to refresh.", descRejectedDefault: "Please update the information and resubmit based on the rejection reason.", descRejectedRecords: "This page shows the approval result of the selected application. Please update the information and resubmit based on the rejection reason.", descUnsubmitted: "Please submit a registration application first. Registration is completed only after approval.", fallbackNone: "-", fetchStatusFailed: "Failed to fetch approval status", goLogin: "Sign In", labelAccount: "Account", labelCertificateNo: "Certificate No.", labelIdentityType: "Identity Type", labelName: "Name", latestDetailMissing: "Latest details are unavailable. Showing the list record instead.", navTitle: "Registration Result", refreshStatus: "Refresh Status", refreshing: "Refreshing...", remarkApproved: "Approval Note", remarkPending: "Approval Note", remarkRejected: "Rejection Reason", resubmitRegister: "Submit Registration Again", roleDomestic: "Chinese", roleForeign: "Foreign", statusApproved: "Approved", statusPending: "Under Review", statusRejected: "Rejected", submittedInfoTitle: "Submitted Information", titleApproved: "Registration approved", titlePending: "Registration submitted", titleRejected: "Registration was not approved", titleUnsubmitted: "No registration application submitted yet", unsubmitted: "Not Submitted", viewRegistrationRecords: "View Registration Records" } }, login: { login: { accountLabel: "Account / Email", accountPlaceholder: "Enter account or email", goRegister: "Register", loading: "Loading...", loginFailed: "Sign-in failed, please try again later", loginSuccess: "Signed in successfully", noAccount: "No account yet?", pageDesc: "Sign in to Luju Apartments and explore your international youth community.", pageTitle: "Welcome Back", passwordLabel: "Password", passwordPlaceholder: "Enter password", submitLogin: "Sign In", submitting: "Signing In...", validateRequired: "Please enter both account and password", viewRegistrationRecords: "View Registration Records", viewRegistrationRecordsDesc: "You can review registration records submitted by this Wechat account even without signing in." } }, register: { register: { admissionNoticeAttachmentLabel: "Admission Notice (Employment Certificate)", accountLabel: "Account", accountPlaceholder: "Enter account name", accountShortTitle: "Account", accountSection: "Account Information", accountSectionDesc: "For sign-in and follow-up notifications", attachmentNotImage: "The current attachment is not an image", basicSectionDesc: "Show matching documents and fields by identity", basicSection: "Basic Verification", chinaText: "China", countryFixedText: "Fixed for Chinese users", countryLabel: "Country", countryLoadFailed: "Failed to load country list", countrySearchHint: "Fuzzy search supported", countrySearchPlaceholder: "Search country, region, or code", countrySearchSubtitle: "Search by Chinese, English, or country code", countrySearchTitle: "Select Country", countryPlaceholder: "Select country", dictLoadFailed: "Failed to load dictionaries", dietaryLabel: "Dietary Habit", dietaryPlaceholder: "Select dietary habit", documentAttachmentLabel: "Document Attachment", documentExpiryLabel: "Document Expiry Date", documentImageOnlyTip: "Document attachment only supports images, please re-upload", documentTypeLabel: "Document Type", documentLabel: "Document Number", documentPlaceholder: "Enter document number", domesticIdentity: "Chinese", draftTipDefault: "Unfinished content is auto-saved and can be continued later", draftTipSaved: "Current content has been auto-saved", emailCodeLabel: "Email Code", emailCodePlaceholder: "Enter email verification code", emailLabel: "Email", emailPlaceholder: "Enter email", foreignIdentity: "Foreign", finishAndSubmit: "Finish and Submit", genderLabel: "Gender", genderMale: "Male", genderFemale: "Female", goLogin: "Sign In", hangzhouPropertyLabel: "Property in Hangzhou", hasAccount: "Already have an account?", heroKicker: "Luju Apartment Registration", hobbyLabel: "Hobby", hobbyPlaceholder: "Select hobby", idCardBackTip: "Make sure the expiry date and national emblem are clear", birthdayLabel: "Date of Birth", birthdayPlaceholder: "Select date of birth", idCardBackAttachmentLabel: "ID Card Back", idCardFrontAttachmentLabel: "ID Card Front", idCardFrontTip: "Keep all edges visible with no obstructions", idCardLabel: "ID Card Number", idCardPlaceholder: "Enter ID card number", imageUploadedTip: "Image uploaded, tap to preview", identityShortTitle: "Verification", identityTypeLabel: "Identity Type", identityTypeTip: "Switching will also update country, document type, and upload requirements", loading: "Loading...", nameLabel: "Name", namePlaceholder: "Enter your real name", navTitle: "Register", noMatchedCountry: "No matching country or region found", noSelectableCountry: "No selectable country", noSelectableOptions: "No selectable options", noText: "No", pageDesc: "Account information and identity verification materials must be completed together. Registration succeeds only after approval.", pageTitle: "Register and Submit Verification", passportAttachmentLabel: "Passport Attachment", passportImageOnlyTip: "Passport attachment only supports images, please re-upload", passportExpiryLabel: "Passport Expiry Date", passportLabel: "Passport Number", passportPlaceholder: "Enter passport number", passwordLabel: "Password", passwordPlaceholder: "Enter at least 6 characters", previousStep: "Previous", phoneLabel: "Phone", phonePlaceholder: "Enter phone number", preferenceSectionDesc: "Optional items to better match living preferences", preferenceSection: "Preferences", preferenceShortTitle: "Preferences", profileSectionDesc: "Upload documents and supporting materials for review", profileSection: "Profile", profileShortTitle: "Profile", religionLabel: "Religion", religionPlaceholder: "Select religion", restoreDraftCancel: "No", restoreDraftConfirm: "Restore", restoreDraftContent: "Would you like to restore the last unfinished or failed registration data?", restoreDraftSuccess: "Previous draft restored", restoreDraftTitle: "Unfinished Data Found", reupload: "Re-upload", reselect: "Choose Again", schoolLabel: "School", schoolPlaceholder: "Enter school (optional)", stepAccountDesc: "First complete the account, password, and email information.", stepIdentityDesc: "Fill in the basic profile such as name, identity, phone number, and country.", stepProfileDesc: "Add documents, attachments, and verification materials.", stepPreferenceDesc: "Finally add optional preferences and complete the submission.", selectDate: "Select date", nextStep: "Next", submitFailed: "Submission failed, please try again later", submitPending: "Application submitted, pending approval", submitRegister: "Submit Registration", submitting: "Submitting...", uploadFailed: "Upload failed, please retry", uploadAdmissionNotice: "Upload admission notice or employment certificate", uploadClearImageTip: "Please upload a clear image", uploadDocument: "Upload document image", uploadIdBack: "Upload ID card back", uploadIdFront: "Upload ID card front", uploadImageOption: "Upload Image", uploadPassport: "Upload passport image", uploadPassportTip: "Prefer a full, clear front-side image", uploadSuccess: "Upload successful", uploading: "Uploading...", validateEmail: "Please enter a valid email address", validateIdCard: "Please enter your ID card number", validateIdCardAttachments: "Please upload both sides of the ID card", validateIdentityBasic: "Please complete gender, phone number, and country", validatePassportAttachment: "Please upload the passport image", validatePassportAttachmentImage: "Passport attachment only supports image files", validatePassportBasic: "Please enter passport number and expiry date", validatePasswordLength: "Password must be at least 6 characters", validatePhone: "Please enter a valid phone number", validateProfile: "Please complete work unit/school and property status in Hangzhou", validateRequiredStepBasic: "Please complete the account, password, and email first", validateRequiredBasic: "Please complete the account, password, email, and name fields first", validateRequiredName: "Please enter your real name", validateSelectDocumentType: "Please select a document type", validateDocumentBasic: "Please enter document number and expiry date", validateDocumentAttachment: "Please upload the document image", validateDocumentAttachmentImage: "Document attachment only supports image files", viewImage: "Preview", viewRegistrationRecords: "View Registration Records", viewRegistrationRecordsDesc: "If this Wechat account has submitted before, you can review the history and approval status directly.", workUnitLabel: "Work Unit/School", workUnitPlaceholder: "Enter work unit/school", yesText: "Yes" } }, registration_records: { accountLabel: "Account", approvalRemarkLabel: "Review Notes", approvedAtLabel: "Approved At", emptyDesc: "This Wechat account has not submitted any registration application yet.", emptyTitle: "No registration records", goRegister: "Submit Registration", idNumberLabel: "ID Number", loadError: "Failed to load registration records", loadingDesc: "Syncing registration records submitted by this Wechat account. Please wait.", loadingMore: "Loading...", loadingTitle: "Loading registration records", navTitle: "Registration Records", noMore: "No more records", phoneLabel: "Phone", providerUnavailableDesc: "Please open this page in Wechat Mini Program to view registration records submitted by this Wechat account.", providerUnavailableTitle: "Unable to access Wechat identity", pullUpMore: "Pull up to load more", registrationFallbackTitle: "Registration Application", rejectReasonLabel: "Rejection Reason", statusAll: "All", statusApproved: "Approved", statusPending: "Under Review", statusProcessing: "Processing", statusRejected: "Rejected", submittedAtLabel: "Submitted At" } }, pkgBooking: { book: { book: { bookingFor: "Booking For", bookingStatus: "Status", checkInDate: "Booking Period", checkInDesc: "Payment will create a booking order first, without occupying room inventory.", deposit: "Deposit", endDate: "Check-out Date", nightUnit: "nights", pendingPayment: "Deposit Pending", roomTypeLabel: "Room Type: ", selectDate: "Select Date", startDate: "Check-in Date", stayNights: "Stay Nights", submitOrder: "Go To Payment", title: "Booking Confirm" } }, book_viewing: { book_viewing: { availableTimeLabel: "Available Slots", backTitle: "Back", bookingDateLabel: "Booking Date", budgetLabel: "Budget (CNY/month)", budgetPlaceholder: "Enter your expected budget", defaultInfoDesc: "A dedicated manager will arrange a one-on-one viewing for you", duration1: "1-3 months", duration2: "4-6 months", duration3: "7-9 months", duration4: "10-12 months", duration5: "Over 1 year", durationLabel: "Expected Stay Duration", emptyRoomTypesDesc: "No room types available, please try again later", loadFailed: "Failed to load room types", mapSelectFailed: "Map selection failed, please enter manually", navTitle: "On-site Viewing", popupSubtitle: "Select your preferred room type and area", priceNegotiable: "Price negotiable", roomTypeLabel: "Preferred Room Type", remarkArea: "Preferred Area: {area}", remarkBudget: "Budget: {budget} CNY/month", remarkDuration: "Expected Stay: {duration}", remarkPayMethod: "Payment Method: {payMethod}", remarkRoomType: "Preferred Room Type: {roomType}", remarkSource: "Current Source: {room}", remarkTail: "Note: Please confirm the viewing schedule with the manager. After viewing and locking a room number, the order can be converted into a booking for payment.", remarkTime: "Viewing Time: {date} {time}", remarkTitle: "Viewing Request", remarkWorkplace: "Work / Commute Location: {workplace}", rentalNeeds: "Rental Needs", rentalNeedsDesc: "Help the manager recommend a suitable room", selectDurationRequired: "Please select the expected stay duration", selectedTimeLabel: "Selected Time", selectTimeRequired: "Please select a viewing time slot", selectViewingTime: "Select Viewing Time", selectViewingTimeDesc: "Choose a time slot that works for you", submitBooking: "Submit Request", submitFailed: "Failed to submit the booking", submitHint: "A dedicated manager will contact you shortly after submission", submitSuccessContent: "Your viewing request has been submitted. Please wait for the manager to contact you.", submitSuccessTitle: "Viewing Request Submitted", submitting: "Submitting...", today: "Today", tomorrow: "Tomorrow", week0: "Sun", week1: "Mon", week2: "Tue", week3: "Wed", week4: "Thu", week5: "Fri", week6: "Sat", workplaceLabel: "Work / Commute Location", workplacePlaceholder: "Enter your main commute location" } }, booking_detail: { booking_detail: { areaLabel: "Area", buildingFloorLabel: "Building / Floor", cachedDetailShown: "Network issue detected. Showing the latest synced detail.", dateRangeJoiner: " to ", emptyDesc: "No booking detail is available right now. Please check your booking records first.", emptyTitle: "No booking record", flowStep1: "1. Paid and waiting for approval", flowStep2: "2. Approved and waiting for butler assignment", flowStep3: "3. Butler assigned and waiting for room allocation", flowTitle: "Current Flow", loadFailed: "Failed to load booking detail", loadingDesc: "Syncing the latest booking details. Please wait.", loadingTitle: "Loading booking", navTitle: "Booking Detail", orderNoLabel: "Booking No.", rejectReasonTitle: "Rejection Reason", roomNoLabel: "Room No.", roomTypeLabel: "Room Type", stayDateLabel: "Stay Dates", submittedAtLabel: "Submitted At" } }, booking_list: { booking_list: { bookingFallbackTitle: "Room Booking", buildingFloorLabel: "Building / Floor", cachedListShown: "Network issue detected. Showing the latest synced records.", dateRangeJoiner: " to ", emptyDesc: "No booking record is available yet. Completed bookings will appear here.", emptyTitle: "No booking records", goSelectRoom: "Select Room", loadFailed: "Failed to load booking records", loadingDesc: "Syncing your latest booking records. Please wait.", loadingTitle: "Loading bookings", navTitle: "Booking Records", stayDateLabel: "Stay Dates", submittedAtLabel: "Submitted At" } }, pay: { pay: { billTo: "Bill To", bookingPeriod: "Booking Period", company: "Lüju Property Management", fallbackAction: "Submit Application Instead", fallbackDesc: "The real deposit payment flow is not ready yet. You can submit an application first and let staff follow up.", fallbackNavigateDesc: "The payment API is not ready yet. Submit a stay application first and let staff follow up.", fallbackNavigateTitle: "Stay Application", fallbackTitle: "Payment API Pending", laterAction: "Later", location: "Location", nightUnit: "nights", payNow: "Pay and Submit", paying: "Processing...", paymentAmount: "Deposit Amount", paymentMethod: "Payment Method", pendingTitle: "Payment API Pending", roomType: "Style", roomTypeNameLabel: "Room Type", stayNights: "Stay Nights", title: "Deposit Payment", toLabel: "to", total: "Total" } } }, pkgExplore: { download: { download: { galleryImage: "Guide Image", galleryImageLong: "Guide Image Guide Image Guide Image", navTitle: "Gallery", searchButton: "Search", searchPlaceholder: "Enter search keywords" } }, filter: { filter: { comprehensiveLabel: "All", navTitle: "App Zone", priceLabel: "Price", product1: "Eggy Party", product2: "Carrot Defense", product3: "Travel Frog", product4: "Fallout Shelter", product5: "Kingdom Rush", product6: "Honkai: Star Rail", product7: "Monument Valley", purchasedSuffix: "purchased", salesLabel: "Sales", sortDefault: "Default", typeLabel: "Type" } }, sign: { sign: { checkInNow: "Check In Now", checkInRewardHint: "Daily continuous check-ins unlock multiple rewards", checkInSuccess: "Check-in Successful", checkedInFor: "Checked in for", continuousCheckIn: "Continuous check-in", daysAndEarned: "days and earned", daysRewardHint: "days unlocks extra rewards!", goComplete: "Go", more: "More", notice1: "Congrats to Fu*qi for 7 consecutive check-ins and earning 300 points", notice2: "Congrats to Xu*yuan for 7 consecutive check-ins and earning 300 points", notice3: "Congrats to Cai*dong for 7 consecutive check-ins and earning 300 points", pointsRecord: "Points History", pointsUnit: "Points", taskDesc: "Catch That Pig", taskName: "Task Name", taskSectionTitle: "Complete Tasks for Coins", warmTip: "Tips:", warmTipDesc: "Daily check-in grants 10 points. Completing 7 consecutive days may unlock extra rewards, and the record resets after day 7." } }, store_detail: { store_detail: { addressLabel: "Apartment Address", apartmentName: "Community", collapse: "Collapse", contactManager: "Contact Butler", expandAll: "Expand", loading: "Loading...", loadingManagerInfo: "Loading butler info", navigate: "Navigate", noAddress: "No address available", noImage: "No image", noLocation: "Location unavailable", noServicePhone: "No contact number", parseStoreDataFailed: "Failed to parse community data", phoneConsult: "Phone Consult", selectContact: "Select Contact", pricePending: "TBD", priceUnit: "/month", roomSectionTitle: "Available Rooms ({count})", sectionTitle: "Supporting Facilities", share: "Share", shareTitle: "Community Detail", storeIntro: "Community Intro", viewDetails: "View Details" } }, room_detail: { room_detail: { addressHint: "View on map", allRoomsLoginContent: "Please sign in before booking this room.", apartmentName: "Apartment", applyStay: "Apply Stay", applyViewing: "Book Viewing", areaLabel: "Area", basicInfo: "Basic Info", bookRoom: "Book Room", bookingInfo: "Booking Info", bookingRules: "Booking Rules", buildingLabel: "Building", collapse: "Collapse", englishNameLabel: "English Name", expandAll: "Expand", floorLabel: "Floor", imageCount: "{count} Images", imageTab: "Images", loginTitle: "Sign In Required", navigate: "Navigate", needApproval: "Approval Required", noAddress: "No address available", noApprovalNeeded: "Instant Booking", noImage: "No image", noLocation: "Location unavailable", noPreviewImage: "No preview image", navDetail: "Room Detail", orientationLabel: "Orientation", payMethodLabel: "Payment", payMethodPrefix: "Payment: ", priceLabel: "Price", pricePending: "TBD", pricePrefix: "Price: ", priceUnit: "/month", roomCodeLabel: "Room No.", roomDesc: "Room Description", roomTypeCodePrefix: "Room Type Code: ", roomTypeDesc: "Room Type Description", roomTypeFallback: "Room", roomTypeLabel: "Room Type", roomTypeNameLabel: "Room Type Name", roomTypeApplyLoginContent: "Please sign in before submitting a viewing request for this room type.", roomSectionTitle: "Room Assets", sectionTitle: "Room Assets", sectionSubtitle: "{count} items", share: "Share", shareTitle: "Room Detail", statusLabel: "Status", stayApplicationSuffix: "Stay Application", stayLoginContent: "Please sign in before submitting a stay application.", swipeUpHint: "Swipe up for details", unitLabel: "Unit", viewLargeImage: "View Large Image", viewLargeImageDesc: "Tap to open the current image in full screen.", vrPreview: "VR Preview", vrPreviewDesc: "Switch to immersive room viewing.", vrTab: "VR", vrViewingTitle: "VR Viewing" } }, vr_preview: { vr_preview: { defaultTitle: "VR Viewing", emptyPreview: "No VR preview available", modeChip: "VR Preview", noAsset: "No VR preview asset available", placeholderSubtitle: "This room type keeps its VR entry reserved for richer immersive assets later.", posterSubtitle: "The current VR preview poster is displayed. Tap to view the full image.", viewFullscreen: "View Fullscreen", waitingAsset: "Waiting for assets" } } }, pkgService: { application_detail: { application_detail: { apartmentLabel: "Apartment", applicantLabel: "Applicant", applicationCodeLabel: "Application No.", applicationRemarkTitle: "Application Notes", applicationTypeLabel: "Application Type", appliedRoomTypeLabel: "Requested Room Type", backList: "Back to List", basicInfoTitle: "Basic Information", budgetKey: "Budget", codeCopied: "Application number copied", commuteKey: "Work / Commute Location", copy: "Copy", dateRangeJoiner: " to ", emptyRemark: "No additional remarks", intendedRoomTypeLabel: "Preferred Room Type", leaseDurationKey: "Expected Stay Duration", leaseTermLabel: "Lease Term", missingBillCode: "Missing application bill number", missingContractNo: "Missing contract number", inspectionPendingReviewHint: "Inspection under review", checkinPendingHint: "Move-in is being processed, please wait", refreshAction: "Refresh", navTitle: "Application Detail", paymentMethodKey: "Payment Method", preferredAreaKey: "Preferred Area", preferredRoomTypeKey: "Preferred Room Type", remarkTitle: "Remarks", statusApproved: "Approved", statusFinished: "Closed", statusLabel: "Status", statusPending: "Pending", statusPendingPayment: "Please Pay Deposit", statusProcessing: "Processing", statusRejected: "Rejected", statusReminderTitle: "Current Progress", statusWaitingRoomAssign: "Waiting for Room Arrangement", stayApplicationTitle: "Stay Application", stayApplicationType: "Stay Application", submittedAtLabel: "Submitted At", viewBill: "View Related Bill", viewingApplicationTitle: "Viewing Request", viewingApplicationType: "Viewing Request", viewingInfoTitle: "Viewing Details", viewingTimeKey: "Viewing Time", viewingTimeLabel: "Viewing Time" } }, components: { CurrentApplicationBillPanel: { applicationNoPrefix: "Application No: ", billInfoIncomplete: "Incomplete bill information", billLoadFailed: "Failed to load bills", billNoLabel: "Bill No.", billPaymentDesc: "Bill Payment", billRecordFallback: "Bill Record", buttonConfirming: "Confirming...", buttonLaunching: "Launching...", buttonPolling: "Checking ({current}/{total})", continuePayButton: "Continue Pay", createTimeLabel: "Created At", currentPaymentLabel: "This Payment", emptyApplicationDesc: "No related application is found. Please go to \"My Applications\" and select an application first.", emptyApplicationTitle: "No Application Available", emptyPendingDesc: "No pending bills are found under the current application. New bills will appear here later.", emptyPendingTitle: "No Pending Bills", goToMyApplication: "Go to My Applications", heroDescAutoResolve: "The latest application number will be used first to query related bills.", heroDescResolved: "This page is querying pending bills by the current application number.", heroTitle: "Pending Bills", loadingDesc: "Syncing your pending bills, please wait.", loadingTitle: "Loading Bills", paidAmountLabel: "Paid Amount", paymentActionAcknowledge: "Got It", paymentCanceled: "Payment canceled", paymentDescFailed: "The system cannot confirm the payment for now. Please review the tips and try again later.", paymentDescLaunching: "Wechat Pay is being launched. Complete the payment in Wechat and return here.", paymentDescPolling: "After payment, the system checks the payment status automatically. No manual refresh is needed.", paymentDescSuccess: "This payment has been synchronized and the bill status is updated.", paymentFailedError: "Payment failed", paymentFailedHint: "Payment success is not confirmed yet. Please refresh the bill later.", paymentHintLaunching: "Payment information is ready. Waiting for Wechat payment to complete.", paymentHintLaunchingToast: "Launching Wechat Pay. Please complete the payment in Wechat.", paymentHintPaidWaiting: "Payment succeeded. Waiting for backend confirmation of the bill status.", paymentHintPolling: "Checking payment status with the backend, please wait.", paymentParamIncomplete: "Incomplete Wechat payment parameters", paymentProgressLabel: "Confirmation Progress", paymentProgressWaiting: "Waiting for Payment", paymentResultFailed: "Backend returned payment failure", paymentResultFailedRetry: "Payment confirmation failed. Please refresh the bill later.", paymentResultPending: "Backend is still processing", paymentResultSuccess: "Backend confirmed payment success", paymentStageDefault: "Processing Payment", paymentStageFailed: "Payment Incomplete", paymentStageLaunching: "Launching Wechat Pay", paymentStagePolling: "Syncing Payment Result", paymentStageSuccess: "Payment Confirmed", paymentStatusPending: "Processing", paymentSuccessAllDone: "Payment is confirmed. All bills under this application are completed.", paymentSuccessPendingBills: "Payment is confirmed. There are still other unpaid bills under this application.", paymentTimeoutError: "Payment confirmation timed out. Please refresh the bill later.", paymentTipsDefault1: "After successful payment, the system may need a few seconds to sync the bill status.", paymentTipsDefault2: "Do not tap the pay button repeatedly or close this page too early.", paymentTipsDefault3: "If the process times out, the system checks the bill status again automatically.", paymentTipsFailed1: "If you have completed the payment, refresh the bill later to avoid duplicate payment.", paymentTipsFailed2: "If Wechat has deducted the amount but the page is not updated, contact your manager or support for verification.", paymentTipsFailed3: "If no deduction occurred, return to the bill list and try again.", paymentTipsSuccess1: "If there are other pending bills under this application, you can continue paying on this page.", paymentTipsSuccess2: "If all bills are paid, the system returns to the home page automatically.", paymentTipsSuccess3: "Payment record synchronization may be slightly delayed. Refresh to see the latest status.", paymentTipsTitleDefault: "Tips", paymentTipsTitleFailed: "Suggestions", paymentTipsTitleSuccess: "Completion Notes", paymentTitleDefault: "Processing Payment", paymentTitleFailed: "Payment Confirmation Failed", paymentTitleLaunching: "Complete Wechat Pay", paymentTitlePolling: "Confirming Payment Result", paymentTitleSuccess: "Payment Successful", pendingPaymentAmountLabel: "Order Amount", pendingPaymentChannelLabel: "Channel", pendingPaymentDescLabel: "Description", pendingPaymentExpireLabel: "Time Left", pendingPaymentExpired: "Expired", pendingPaymentOrderNoLabel: "Payment Order No.", pendingPaymentTitle: "Unfinished Payment", pendingAmountLabel: "Pending Amount", pendingCountLabel: "Pending Count", refundStatusLabel: "Refund Status", relatedBusinessNoLabel: "Related Business No.", remainingAmountLabel: "Remaining Amount", remarkLabel: "Remark", resultLabel: "Result", totalChargeLabel: "Total Charge", wechatCodeFailed: "Failed to get Wechat login code", wechatPayButton: "Wechat Pay", cancelOrderButton: "Cancel Order", cancelOrderContent: "This will close the current unpaid order. Continue?", cancelOrderFailed: "Failed to cancel order", cancelOrderLoading: "Canceling...", cancelOrderSuccess: "Order canceled", cancelOrderTitle: "Cancel Order", paymentNoticeAmountLabel: "Amount", paymentNoticeBillLabel: "Bill No.", paymentNoticeCancel: "Later", paymentNoticeConfirm: "Continue", paymentNoticeItemLabel: "Charge Item", paymentNoticeLine1: "Please confirm the bill and payment amount before continuing.", paymentNoticeLine2: "After payment, the bill status may take a few seconds to sync. Please do not pay repeatedly.", paymentNoticeLine3: "If the payment is interrupted or the page is closed, return to the bill page later to check the latest result.", paymentNoticeTitle: "Payment Notice" } }, contract_detail: { contract_detail: { contractNoLabel: "Contract No.: ", emptyDesc: "No previewable contract content was provided by image URL or contract number.", emptyTitle: "No contract content", imageModeChip: "A4 Image Mode", loadingDesc: "Fetching contract images and content. Please wait.", loadingTitle: "Loading contract", navTitle: "Contract Detail", notAvailable: "N/A", overviewTitle: "Contract Preview", signedChip: "Signed Contract", textModeChip: "Text Preview Mode", zoomSupportedChip: "Zoom Supported" } }, contract_sign: { contract_sign: { back: "Back", contractNoLabel: "Contract No.: ", contractNoMissing: "Missing contract number", emptyDesc: "No signable contract content is available at the moment. Please try again later.", emptyTitle: "No contract content", footerTip: "Please confirm that you have fully read the contract before signing", fullscreenPreview: "Open Fullscreen", fullscreenTitle: "Full Contract", loadingDesc: "Fetching contract content. Please wait.", loadingTitle: "Loading contract", navTitle: "Contract Signing", notAvailable: "N/A", overviewMeta: "Read the contract content before submitting your signature. The result will sync to My Contracts.", overviewTitle: "Before Signing", signAction: "I have read and agree. Sign now", signFailed: "Failed to sign contract", signSuccess: "Contract signed successfully", signerMissing: "Missing signer name", signingLoading: "Submitting contract...", submitting: "Submitting...", uploadFailed: "Failed to upload signature" } }, device_control: { device_control: { actionSuccess: "Action completed", applySetting: "Apply", commandFailed: "Failed to send command", commandSending: "Sending command...", controlPanel: "Control Panel", currentRoom: "Current Room", curtainClose: "Close", curtainClosed: "Curtain closed", curtainOpen: "Open", curtainOpened: "Curtain opened", curtainPause: "Pause", curtainPaused: "Curtain paused", deviceClosed: "Closed", deviceDetail: "Device Details", deviceEnabled: "Enabled", deviceIdMissing: "Missing device ID", deviceMissing: "Missing device information", deviceOpened: "Opened", functionCodeMissing: "Missing function code", functionCount: "{count} functions", pendingTag: "Pending", schemaApplied: "{name} parameters sent", sliderLabel: "Brightness / Value", sliderUpdated: "Slider value updated", syncHint: "Device status refreshes automatically after each action", unknownSchema: "No parameter template recognized", unsupportedBoxText: "This function is not available yet. Tap to send feedback.", unsupportedFunction: "{name} is not fully supported yet" } }, message_detail: { message_detail: { actionButler: "View Service", actionDefault: "Continue to Page", actionPayment: "Handle Bill", actionSystem: "Open Related Page", backList: "Back to Messages", categoryButler: "Butler Message", categoryLabel: "Category", categoryPayment: "Payment Bill", categorySystem: "System Notice", codeCopied: "Notice code copied", codeLabel: "Notice Code", contentTitle: "Content", copy: "Copy", emptyContent: "No detailed content available", expiredDesc: "This message detail has expired. Please return to the message center and open it again.", expiredHint: "Message cache expired", localSource: "Local Business Message", messageFallbackTitle: "Notification", navTitle: "Message Detail", remoteSource: "Remote Notification API", sourceLabel: "Source", statusLabel: "Status", summaryTitle: "Summary" } }, my_application: { my_application: { apartmentLabel: "Apartment", dateRangeJoiner: " to ", emptyDesc: "You have not submitted any application yet. Go select a room to start a stay or viewing application.", emptyTitle: "No applications yet", goSelectRoom: "Select Room", leaseTermLabel: "Lease Term", loadError: "Failed to load applications", loadingDesc: "Syncing your application records. Please wait.", loadingMore: "Loading...", loadingTitle: "Loading applications", missingApplicationCode: "Missing application number", missingBillCode: "Missing application bill number", navTitle: "My Applications", noMore: "No more applications", occupantLabel: "Resident", pullUpMore: "Pull up to load more", refresh: "Refresh Status", refreshSuccess: "Application status refreshed", refreshing: "Refreshing...", remarkLabel: "Remarks", statusAll: "All", statusApproved: "Approved", statusFinished: "Closed", statusPending: "Pending", statusPendingPayment: "Please Pay Deposit", statusProcessing: "Processing", statusRejected: "Rejected", statusReminderTitle: "Current Progress", statusWaitingRoomAssign: "Waiting for Room Arrangement", stayApplicationTitle: "Stay Application", submittedAtLabel: "Submitted At", toolbarSummary: "{total} applications", viewBill: "View Related Bill", viewingApplicationTitle: "Viewing Request", viewingTimeLabel: "Viewing Time" } }, my_contract: { my_contract: { actionSign: "Sign Now", actionViewDetail: "View Detail", contractPeriodLabel: "Contract Period", contractTitle: "Stay Contract", dateRangeJoiner: " to ", displayMetricLabel: "Displayed", emptyDesc: "Switch filters or wait for new contract data to be generated.", emptyTitle: "No contract record found", loadingDesc: "Syncing your contract data. Please wait.", loadingTitle: "Loading contracts", mySignatureLabel: "My Signature", navTitle: "My Contracts", overviewSubtitle: "Check stay contracts, signing status, and effective period", overviewTitle: "Contract Overview", pendingMetricLabel: "Pending Sign / Review", recordTipLabel: "Notes", relatedOrderLabel: "Related Order", signStatusLabel: "Signing Status", signed: "Signed", statusApproved: "Approved", statusPending: "Pending Review", statusProcessing: "Processing", statusRejected: "Rejected", tabAll: "All", tabPending: "Pending Sign", tipApproved: "The contract is effective now. You can view the signing result.", tipDefault: "Please pay attention to the latest contract status.", tipNeedSign: "Please complete your signature to enter the review process.", tipPending: "Signing information has been submitted and is waiting for review.", tipRejected: "The contract did not pass review. Please contact the administrator.", unsigned: "Unsigned" } }, service_stub: { service_stub: { accessAssignDesc: "After completing check-in signing and face / identity enrollment,\nthe system will automatically assign your access permission.", accessCodeDesc: "Use it for community gates, unit doors, and elevators", accessCodeTitle: "My Access QR Code", authRecordTitle: "Access Records", backHome: "Back Home", backPrev: "Go Back", comingSoonTitle: "Coming Soon", coupon: "Coupons", couponDesc: "Offset rent and utilities", currentStatusDesc: "This capability is still under development and is not yet officially available. You can go back or return to the home page to browse available features.", currentStatusTitle: "Current Status", dailyPoints: "Daily check-in rewards", defaultPageDesc: "This capability is being improved and will appear in the related personal center entry when available.", defaultPageTitle: "Service Center", goCheckIn: "Check In", lockEmptyRecord: "No door lock records", lockNoAccessDesc: "No smart lock is assigned yet, or the lock is currently offline.\nAfter check-in, door passwords, fingerprint enrollment, and temporary password delivery will be available.", lockNoAccessTitle: "No door lock access", noAccessPermission: "No access permission", noteDesc: "After the real capability is connected, this page will display the formal service entry, status data, and processing records.", noteTitle: "Notes", oneTapUnlock: "Add Fingerprint", pointsAvailable: "Available Points", pointsEmpty: "No points record", pointsMall: "Points Mall", pointsMallDesc: "Redeem for selected items", pointsRecordTitle: "Points History", redeemRules: "Redeem Rules", tempPassword: "Temporary Code", visitorAccessAction: "Temporary visitor authorization", visitorAccessTitle: "Visitor Access", visitorEmpty: "No visitor access records" } }, lock_control: { lock_control: { addFingerprint: "Add Fingerprint", availableLocks: "Available Locks", connectingLock: "Connecting to the lock...", currentLock: "Current Lock", currentRoomLock: "Room Lock", currentSelectionHint: "{count} available locks found for this room. Currently selected: \"{name}\".", currentWillOperateRoomLock: "The current room lock will be used.", currentWillOperateSuiteLock: "The selected suite / common area lock will be used.", doorLock: "Smart Lock", doorPassword: "Door Password", fingerAdded: "Fingerprint Added", fingerModeFailed: "Failed to enable fingerprint mode", fingerStatus: "Fingerprint Status", fingerprintGuideDesc: "Follow the lock prompt, place your finger naturally on the sensor, and press repeatedly until enrollment is complete.", fingerprintGuideTip: "The system will refresh the enrollment result automatically", fingerprintGuideTitle: "Press Your Finger Repeatedly", fingerprintInstruction: "To enroll a fingerprint, tap \"Add Fingerprint\" and follow the lock prompts.", keySyncing: "Syncing your lock credentials...", keySyncFailed: "Failed to sync lock credentials", loadingEnroll: "Preparing Enrollment", lockCapabilityAfterCheckin: "Door lock features are available after check-in.", lockKeys: "My Keys", missingRoomCode: "Your current stay order is missing a room code. Please contact your butler.", missingUserCodeFinger: "Student/staff ID is missing, so fingerprint enrollment is unavailable.", missingUserCodeKeys: "Your account is missing a student/staff ID, so lock credentials cannot be synced yet.", noAvailableLocks: "No available locks found for the current room.", noneAssigned: "Not Assigned", notRecorded: "Not Enrolled", noCopyPassword: "No password available to copy", passwordCopied: "Password copied", preparingFingerDesc: "The command has been sent to the lock. Please wait a moment.", recorded: "Enrolled", roomLock: "Room Lock", roomOrPublicArea: "Suite / Common Area", roomOrPublicAreaLock: "Suite / Common Area Lock", selectedCount: "{count} lock(s)", sendingFinger: "Sending...", syncCurrentRoomLocks: "Syncing available locks for the current room.", tipsTitle: "Instructions", unlockWaitHint: "If the lock is still waiting, keep pressing and tap refresh to check again.", useRoomPasswordFinger: "My Keys · Door Password · Fingerprint Enrollment" } }, smart_control: { smart_control: { commandFailed: "Failed to send command", currentRoom: "Current Room", deviceOff: "Off", deviceRunning: "Running", deviceSummary: "{count} devices available. Tap to control in detail view", disabled: "Disabled", emptyDesc: "No smart devices are bound to this room", emptyTitle: "No controllable devices", enabled: "Enabled", loadFailedTitle: "Failed to load devices", loadingDesc: "Checking controllable devices in the current room...", loadingShort: "Loading", loadingTitle: "Connecting devices", missingFunctionCode: "Missing function code", missingRoomCode: "Missing room code", navTitle: "Smart Home", refreshStatus: "Refresh Status", requestFailed: "Failed to request device list", retry: "Retry", sending: "Sending...", syncingStatus: "Syncing device status", toolbarTip: "Tap a device to open details and send control commands", unsupportedQuickControl: "Quick control is not supported for this device", unsupportedSwitch: "This device does not support quick switching" } }, lost_found_publish: { lost_found_publish: { navTitle: "Lost and Found", heroBadge: "Community Service", heroTitle: "Publish lost or found item details", heroDesc: "Share lost or found information with the community so that follow-up and matching can happen faster.", formTitle: "Item Information", formDesc: "Please complete the key details below. Required fields help others contact you faster.", typeLabel: "Publish Type", typePlaceholder: "Select lost or found", typeLost: "Lost Item", typeFound: "Found Item", itemTypeLabel: "Item Category", itemTypePlaceholder: "For example: documents, keys, electronics", itemNameLabel: "Item Name", itemNamePlaceholder: "Please enter the item name", placeLabel: "Location", placePlaceholder: "Please enter where it was lost or found", whenLabel: "Time", selectDate: "Select date", selectTime: "Select time", whenTip: "Optional. Fill in the approximate time if available.", contractLabel: "Contact Person", contractPlaceholder: "Please enter the contact person", contractPhoneLabel: "Contact Phone", contractPhonePlaceholder: "Please enter the contact phone", remarkLabel: "Remarks", remarkPlaceholder: "Add more details such as appearance, claim notes, or identifying features", imagesLabel: "Images", uploadImage: "Upload Image", imagesTip: "Optional. Upload on-site or item photos to help identify the item.", submitTip: "Please verify the information before publishing. We will submit it with the current language.", submitting: "Submitting...", submitButton: "Publish Now", uploadFailed: "Image upload failed", uploadOversize: "Each image must be within 5 MB", uploadExceed: "You can upload up to 6 images", validateItemType: "Please enter the item category", validateItemName: "Please enter the item name", validatePlace: "Please enter the location", validateContract: "Please enter the contact person", validateContractPhone: "Please enter the contact phone", submitSuccess: "Published successfully", submitFailed: "Failed to publish" } }, submit_request: { components: { BuildingSelector: { emptyDesc: "No available buildings, please try again later", emptyText: "No buildings available", loadFailed: "Failed to load buildings", loadFailedShort: "Failed to load buildings", loadingText: "Loading buildings...", popupSubtitle: "Select your preferred building", popupTitle: "Select Building", selectAreaFirst: "Please select an area first", selectBuilding: "Select building" }, DateRangeSelector: { dateDivider: "to", endLabel: "Expected Check-out", endPlaceholder: "Select check-out date", startLabel: "Expected Check-in", startPlaceholder: "Select check-in date" }, FloorSelector: { clearSelection: "Not specified", emptyDesc: "No available floors, please try again later", emptyText: "No floors available", loadFailed: "Failed to load floor list", loadFailedShort: "Failed to load floors", loadingText: "Loading floors...", popupSubtitle: "Select your preferred floor", popupTitle: "Select Floor", selectFloor: "Select floor" }, RoomTypeSelector: { emptyRoomTypes: "No room types available", loadFailed: "Failed to load room types", loadingRoomTypes: "Loading room types...", popupTitle: "Select Room Type", priceUnit: "/month", selectRoomType: "Select preferred room type" }, TagSelector: { emptyText: "No tags available", loadingText: "Loading tags..." } }, submit_request: { applicationInfo: "Application Details", applicationType: "Application Type", applyRemarkPlaceholder: "Enter your additional notes", applyRoomType: "Requested Room Type", areaLabel: "Area", buildingLabel: "Preferred Building", currentRoom: "Current Room", dateCannotBefore: "{endLabel} cannot be earlier than {startLabel}", emptyHobbyTags: "No hobby tags", emptyLifestyleTags: "No lifestyle tags", expectedCheckin: "Expected Check-in", expectedCheckout: "Expected Checkout", floorLabel: "Preferred Floor", hobbyLabel: "Hobbies", leaseRange: "Lease Period", lifestyleLabel: "Lifestyle Habits", paymentMethod: "Payment Method", referencePrice: "Reference Price", remarkLabel: "Additional Notes", remarkRequired: "Please enter additional notes", roomTypeApplyBlockDesc: "The live application API is connected and can submit with room and area codes.", roomTypeApplyBlockTitle: "Application Details", roomTypeApplyDesc: "Confirm the room type, area, preference tags, and lease period before submitting.", roomTypeApplyTitle: "Room Type Application", switchRoomType: "Switch", summaryTitle: "Application Summary", expandSummary: "Expand", collapseSummary: "Collapse", selectCheckinDate: "Select check-in date", selectCheckoutDate: "Select checkout date", selectDateEnd: "Please select {label}", selectDateStart: "Please select {label}", sourceDefaultDesc: "Fill in your stay intention, lease period, and notes.", stayApplyDefaultDesc: "Fill in your stay intention, preferences, and lease period before submission.", stayApplyDefaultTitle: "Stay Application", agreeAndSubmit: "Agree and Submit", confirmSubmitTitle: "Confirm before submit", confirmSubmitContent: "Confirm submitting the current application?", confirmSubmitAction: "Confirm submit", confirmSubmitCancel: "Think again", noDepositReminderTitle: "Application Submitted", noDepositReminderContent: "There is currently no pending deposit bill for this application. The butler will arrange a room for you, please wait patiently.", noDepositReminderConfirm: "Got It", submitFailed: "Failed to submit application", submitRoomTypeApply: "Submit Application", submitSuccess: "Application submitted", submitting: "Submitting...", tagLoadFailed: "Failed to load preference tags" } }, utility_recharge: { utility_recharge: { navTitle: "Bill Management" } }, ticket_center: { ticket_center: { navTitle: "Work Orders", heroBadge: "SERVICE", heroTitle: "In-stay Ticket Services", heroDesc: "Repair, renewal, checkout, room change, water delivery, cleaning, and suggestions are all handled here." } }, ticket_workbench: { ticket_workbench: { areaLabel: "Area", assigneeLabel: "Assignee", attachmentsLabel: "Attachments", cancelProcess: "Cancel Action", cancelSupplement: "Cancel Supplement", changeRoomTypeLabel: "Preferred Room Type", cleaningTimeLabel: "Cleaning Time", contentLabel: "Content", currentFlowTag: "Current", currentStayInfo: "Current Stay", currentStayOrder: "Current Stay Order", emptyHistoryDesc: "No tickets of this type yet.", emptyHistoryTitle: "No Ticket Records", flowActionTitle: "Available Actions", historyTab: "History", leaseLabel: "Lease", loadMore: "Load More", loadingMore: "Loading...", loadOrderFailed: "Failed to load stay context", noFlowContent: "No handling content", noMore: "No more records", refresh: "Refresh", refreshing: "Refreshing...", remarkLabel: "Notes", remarkPlaceholder: "Enter notes to help the staff handle this ticket", roomLabel: "Room", roomTypeLabel: "Room Type", searchPlaceholder: "Search title or content", selectAssignee: "Select assignee", selectDate: "Select date", selectTime: "Select time", submitSectionDefaultDesc: "The form below will be submitted through the ticket APIs.", submitTab: "Submit", submitTicket: "Submit Ticket", submitting: "Submitting...", supplementAction: "Supplement", supplementLabel: "Supplementary Fields", supplementPlaceholder: "Please enter {label}", ticketKicker: "WORK ORDER", uploadImage: "Upload Image", uploadImageCountExceeded: "Up to 6 images", uploadImageFailed: "Failed to upload image", uploadImageOversize: "Image must be less than 5MB", uploadTip: "Upload JPG or PNG images, up to 6 images and 5MB each.", uploadTipRepair: "Upload JPG or PNG images, up to 6 images and 5MB each. Repair requires at least 1 image.", checkoutTimeLabel: "Checkout Time", renewalTimeLabel: "Renew Until", submittedAtLabel: "Submitted At", submitSuccess: "Ticket submitted", submitFailed: "Failed to submit ticket", confirmSubmitTitle: "Confirm", confirmSubmitContent: "Confirm submitting this ticket?", missingStayContext: "Missing current stay order or room information", repairAttachmentRequired: "Please upload repair images", changeAreaRequired: "Please select a room type", checkoutTimeRequired: "Please select checkout time", checkoutReasonRequired: "Please fill in the checkout reason", loadHistoryFailed: "Failed to load ticket history", loadFlowsFailed: "Failed to load ticket flows", loadActionsFailed: "Failed to load ticket actions", continueProcess: "Continue", loadAssigneeFailed: "Failed to load assignees", submitSectionActionDesc: "The ticket is in progress and will continue after submission.", submitSectionSupplementDesc: "The ticket is on hold and will continue after supplementing the information.", currentStatusPending: "Pending", currentStatusProcessing: "Processing", currentStatusResolved: "Resolved", currentStatusClosed: "Closed", allStatus: "All", pendingStatus: "Pending", processingStatus: "Processing", resolvedStatus: "Resolved", closedStatus: "Closed" } }, room_inspection: { room_inspection: { confirmSubmitDesc: "Add handover notes, issue background, or any extra information before submitting.", confirmSubmitSkip: "Skip for now", confirmSubmitTitle: "Confirm before submit", confirmSubmitAction: "Confirm submit", handoverInspection: "Handover Inspection", inspectionHint: "Please check each item. For abnormal cases, add details and upload photos.", pageTitle: "Inspection", pageDesc: "Review and submit inspection results for the current order", inspectionListTitle: "Inspection Records", inspectionSwitcher: "Switch Inspection", inspectionRecordUnit: "records", roomNoLabel: "Room No.", inspectionTypeLabel: "Inspection Type", inspectionStatusLabel: "Status", inspectionTimeLabel: "Created At", inspectionRemarksLabel: "Remarks", inspectionRemarksPlaceholder: "Add notes for this inspection", inspectionItemsTitle: "Inspection Items", inspectionItemsDesc: "Check each item according to the on-site condition", inspectionItemUnit: "items", deviceFallback: "Unnamed Device", markAllNormal: "Mark All Normal", normalResultOptionMissing: "No normal result option found", allMarkedNormal: "All items marked as normal", requiredTag: "Required", expectedQuantityLabel: "Expected Qty", inspectionResultLabel: "Result", checkedQuantityLabel: "Checked Qty", checkedQuantityPlaceholder: "Enter quantity", issueDetailLabel: "Issue Details", problemDetailLabel: "Problem Detail", problemDetailHint: "Add details if anything is missing, damaged, or unusable", problemDetailPlaceholder: "Describe any abnormal, missing, or damaged condition", photosLabel: "Photos", photosHint: "Upload photos of key areas for follow-up confirmation", uploadPhoto: "Upload Photo", addPhoto: "Add", submitAction: "Submit", loadingDesc: "Syncing inspection data...", emptyTitle: "No inspections", emptyDesc: "No inspection record is available for the current order.", emptyItemsTitle: "No items", emptyItemsDesc: "No inspection item is available for this inspection.", submitSuccess: "Inspection submitted", submitFailed: "Failed to submit", submitting: "Submitting...", missingInspectionNo: "Missing inspection record", uploadFailed: "Failed to upload image", chooseImageFailed: "Failed to choose image", resultRequired: "Please complete the result selection for all items first" } } }, components: { ContractSignDialog: { undo: "Undo", rewrite: "Rewrite", close: "Close", confirmSignature: "Confirm", footerTip: "Please confirm that you have fully read the contract before signing", closeBoardTitle: "Notice", closeBoardDesc: "You have not finished signing. Are you sure to close?", continueSigning: "Continue Signing", continueClosing: "Close", missingSignerName: "Missing Signer", writingHintZh: "Please write your Chinese signature here", writingHintEn: "Please write your signature here", signerNameMissingToast: "Missing signer name", signatureRequiredToast: "Please sign first", boundsFailedToast: "Failed to get signature bounds", signatureTooSmallToast: "Signature is too small, please try again", exportFailedToast: "Failed to export signature, please try again" }, ContractAlert: { actionText: "Sign Now", pendingDesc: "You have {count} contract(s) pending signature", pendingTitle: "Contract Pending Signature" } } }, zh: { navigation: { routes: { "pages/index/index": "绿居公寓", "pkgAccount/auth_result/auth_result": "实名结果", "pkgAccount/login/login": "登录", "pkgAccount/register/register": "注册账号", "pkgAccount/registration_records/registration_records": "注册记录", "pkgBooking/book/book": "预订确认", "pkgBooking/book_viewing/book_viewing": "预约看房", "pkgBooking/booking_detail/booking_detail": "预订详情", "pkgBooking/booking_list/booking_list": "预订记录", "pkgBooking/pay/pay": "在线支付", "pkgExplore/download/download": "资料图库", "pkgExplore/filter/filter": "数据筛选", "pkgExplore/room_detail/room_detail": "房型详情", "pkgExplore/sign/sign": "签到打卡", "pkgExplore/store_detail/store_detail": "小区详情", "pkgExplore/vr_preview/vr_preview": "VR看房", "pkgService/application_detail/application_detail": "申请详情", "pkgService/contract_detail/contract_detail": "合同详情", "pkgService/contract_sign/contract_sign": "合同签约", "pkgService/device_control/device_control": "设备控制", "pkgService/lock_control/lock_control": "门锁", "pkgService/message_detail/message_detail": "消息详情", "pkgService/my_application/my_application": "我的申请", "pkgService/my_contract/my_contract": "我的合同", "pkgService/room_inspection/room_inspection": "验房", "pkgService/service_stub/service_stub": "业务办理", "pkgService/smart_control/smart_control": "智能控制", "pkgService/ticket_center/ticket_center": "工单中心", "pkgService/ticket_workbench/ticket_workbench": "工单处理", "pkgService/lost_found_publish/lost_found_publish": "失物拾物", "pkgService/submit_request/submit_request": "我要提交", "pkgService/utility_recharge/utility_recharge": "水电充值" } }, pages: { index: { component: { MessageCenterTab: { acknowledged: "我知道了", butler: "管家消息", checkResultDefault: "检查结果", checkResultFix: "需整改", checkResultNormal: "正常", checkResultReview: "待复核", checkStatusDefault: "状态待定", checkStatusDone: "已完成", checkStatusPending: "待确认", checkStatusProcessing: "处理中", checkTypeCheckout: "退房检查", checkTypeDefault: "检查记录", checkTypeRoutine: "日常检查", checkTypeSpecial: "专项检查", checkerLabel: "检查人:", compensationLabel: "赔付金额:", emptyDesc: "系统通知和巡查提醒会在这里显示。", emptyTitle: "暂无消息", inspectionChecker: "检查人", inspectionCountUnit: "条提醒", inspectionDesc: "根据当前入住订单自动汇总巡查提醒记录", inspectionItemPrefix: "检查项 {index}", inspectionItemsTitle: "检查项明细", inspectionNeedManualHandle: "巡查提醒需单独查看处理", inspectionRemarkTitle: "检查备注", inspectionResult: "检查结果", inspectionStatus: "当前状态", inspectionSummaryFallback: "巡查提醒,请查看详情", inspectionTitle: "巡查提醒", loadingDesc: "正在同步系统通知和巡查提醒,请稍候。", loadingTitle: "消息加载中", markNotificationRead: "通知已读", noUnreadNotification: "暂无未读通知", notificationFallbackDesc: "您有一条新的系统消息", notificationFallbackTitle: "系统通知", payment: "缴费账单", problemLabel: "问题:", recentMessages: "近期消息", remarkLabel: "备注:", remoteMarkedRead: "系统通知已全部标记为已读", remoteMarkedReadWithInspection: "系统通知已标记,巡查提醒需单独处理", subtitle: "你有 {count} 条未读消息待处理", system: "系统通知", title: "消息中心", unassignedRoom: "未关联房间", viewDetail: "查看详情" }, MyApplicationTab: { agreeAndPay: "同意并支付", apartmentLabel: "所属公寓", cancelOrder: "取消订单", cancelOrderContent: "取消后将关闭当前未支付的定金订单,是否继续?", cancelViewingContent: "取消后将关闭当前预约看房申请,是否继续?", cancelOrderFailed: "取消订单失败", cancelOrderLoading: "取消中...", cancelOrderSuccess: "订单已取消", cancelOrderTitle: "取消订单", continuePay: "继续支付", currentStepTag: "当前", dateRangeJoiner: " 至 ", depositNoticeTitle: "租房定金须知", emptyDesc: "您还没有提交任何申请,去选房后可发起入住申请或预约看房。", emptyTitle: "暂无申请记录", goSelectRoom: "去选房", leaseTermLabel: "预计租期", loadError: "申请记录加载失败", loadingDesc: "正在同步您的入住申请记录,请稍候。", missingApplicationCode: "申请编号缺失", missingBillCode: "申请单编号缺失", missingContractNo: "合同编号缺失", noPendingDepositBill: "暂无待支付定金账单", noMore: "没有更多申请了", occupantLabel: "入住人", pageDesc: "您的入住和预约看房申请记录", pageTitle: "我的申请", payDeposit: "支付定金", fetchPaymentParamsFailed: "获取支付参数失败", fetchWechatLoginCodeFailed: "获取微信登录凭证失败", loadingBill: "正在获取账单...", loadingPayment: "正在拉起支付...", depositPaymentDesc: "支付定金", paymentStatusLabel: "支付状态", paymentStatusPending: "待支付", paymentStatusPaid: "已支付", paymentStatusRefunded: "已退款", paymentStatusExempt: "无需支付", paymentSuccess: "支付成功", paymentCanceled: "已取消支付", paymentFailed: "支付失败", pendingPaymentAmountLabel: "订单金额", pendingPaymentDescLabel: "支付说明", pendingPaymentExpireLabel: "剩余支付时间", pendingPaymentExpired: "已失效", pendingPaymentOrderNoLabel: "支付单号", pendingPaymentTitle: "未完成支付订单", pullUpMore: "上拉加载更多", refresh: "刷新状态", refreshEmptySuccess: "未查到申请单,已同步预订单", refreshSuccess: "申请状态已刷新", refreshing: "刷新中...", refreshAction: "刷新", remarkLabel: "补充说明", reservationFlowDesc: "当前预定单的流程进度", reservationFlowTitle: "预定流程", reservationOrderFallback: "预定单", reservationOrderNoLabel: "预定单号", roomNoLabel: "房间号", reservationRoomLabel: "房型", reservationStatusLabel: "订单状态", contractPendingReviewHint: "合同已签,等待宿管审核", inspectionPendingReviewHint: "验房审批中", checkinPendingHint: "宿管正在办理入住,请耐心等待", scrollToRead: "请滑动阅读至底部", refreshFlowAction: "刷新流程", statusApproved: "已通过", statusFinished: "已结束", statusPending: "待审核", statusPendingPayment: "请支付定金", statusProcessing: "处理中", statusRejected: "已拒绝", statusReminderTitle: "当前进度提醒", statusWaitingRoomAssign: "等待管家排房", stayApplicationTitle: "入住申请", submittedAtLabel: "提交时间", toolbarSummary: "共 {total} 条申请", viewingNoDepositToast: "预约看房申请无需支付定金", viewingApplicationTitle: "预约看房申请", viewingTimeLabel: "预约时间" }, ProfileCenterTab: { activities: "参与活动", application: "入住申请", applicationStatus: "申请进度", bill: "账单", bookingList: "预订记录", bookingNo: "预定单号", bookingPlaceholder: "支付后生成的预定单会显示在这里", bookingProgressDesc: "支付完成后会进入审核,审核通过后分配管家并等待分房号。", bookingStatusTitle: "预订审核进度", clickToLogin: "点击登录", comingSoon: "建设中", comingSoonDesc: "{title} 功能正在建设中,后续开放后会在这里提供正式入口和数据。", completeFormBeforeSubmit: "请完善表单信息后提交。", contact: "联系", contract: "我的合同", contractPendingDesc: "您当前有待签署合同,请尽快查看并完成签约。", contractPendingTag: "待签约", contractStatusTitle: "合同状态", coreServices: "我的服务", daysIn: "入住天数", done: "已完成", edit: "编辑资料", exclusiveButler: "专属管家", guest: "游客", languageSwitch: "语言切换", languageToggleLabel: "EN", logout: "退出登录", logoutConfirmContent: "确定要退出登录吗?", logoutConfirmTitle: "提示", logoutSuccess: "已退出", notSubmittedYet: "暂未提交注册申请", onlineService: "24小时在线服务", pendingCountText: "待签合同", points: "积分", registrationApprovedDesc: "注册申请已通过,可前往登录", registrationEmptyDesc: "暂未提交注册申请", registrationPendingDesc: "注册申请审核中,审批通过后才可登录", registrationRecordGuestDesc: "未登录也可查看当前微信账号提交的注册申请记录。", registrationRecordSubmittedDesc: "当前微信账号已提交注册申请,可查看历史记录与审批状态。", registrationRecordTitle: "注册记录", registrationRejectedDesc: "注册申请已驳回,请查看原因后重新提交", registrationStatusTitle: "注册申请进度", remind: "催一下", settings: "偏好设置", statusApproved: "已通过", statusPending: "审核中", statusRejected: "已拒绝", submitRequest: "提交申请", userFallback: "用户", viewDetail: "查看详情", viewNow: "立即查看" }, SelectRoomTab: { all: "全部", allAreas: "全部区域", allTags: "全部标签", apartmentDetail: "公寓详情", areaStatus: "区域状态", areaStatusDesc: "暂无符合筛选条件的区域", areaUnavailableTitle: "该区域暂未开放", bookViewing: "预约看房", defaultAreaAddressPrefix: "位于", distancePlaceholder: "附近", emptyAreaDesc: "当前筛选条件下暂无可用房源", emptyAreaTitle: "暂无匹配房源", emptyBannerDesc: "暂无可展示的轮播图", emptyBannerTitle: "暂无轮播图", learnMore: "了解更多", loadingAreaStatus: "区域加载中", pricePending: "待定", priceUnit: "元/月起", searchApartment: "搜索区域、公寓或房型", shareTitle: "绿居公寓 - 国际化青年社区", sortDefault: "默认排序", sortNameAsc: "名称排序", sortPriceAsc: "价格从低到高", sortPriceDesc: "价格从高到低", tagFilter: "标签筛选", viewCommunity: "查看详情" }, StayServiceTab: { activeStatus: "使用中", applicationInfoTitle: "入住申请信息", applicationCanceled: "申请已取消", addSmartDevice: "添加智能设备", bedPrefix: "床位 {label}", billCount: "账单数量", billEmpty: "暂无待支付账单", billRecordFallback: "账单记录", billType: "账单类型", billUnit: "笔", bookedRoomType: "预定房型", bookingInfo: "预定信息", bookingPendingDesc: "定金已支付,预定单正在审批流中。审批通过后将分配管家并等待分房号。", bookingPendingNote: "订单已提交,管家审核通过后会同步更多入住信息。", bookingPendingTitle: "您的预订正在审核中", butler: "专属社区管家", callNow: "拨打", checkinStep: "办理入住", checkinArrangement: "入住安排", communityEvent: "近期活动", completeFormBeforeSubmit: "请完善表单信息后提交。", cancelApplication: "取消申请", cancelApplicationFailed: "取消申请失败", confirmPayAction: "确认并支付", confirmPayInfo: "确认支付信息", confirmWechatPayHint: "确认后将发起微信支付", contactPhonePrefix: "联系电话 ", contractPendingNote: "检测到待签合同后,流程将停留在签订合同节点,请先完成签名。", contractSignedPendingReview: "合同已签,等待管家审核", contractSignedPendingReviewTitle: "合同已签署,等待管家审核", contractRoom: "合同房型", contractStep: "签订合同", controllable: "可控制", currentStageTitle: "当前阶段", currentStay: "当前入住房间", deviceFallback: "设备 {index}", goSelectRoom: "去选房", inspectionSheet: "验房单", inspectionSubmittedPendingReview: "验房已提交,等待管家审核", joinEvent: "立即报名", lastCreateTime: "最近生成", leaseTerm: "租期", loadingApplicationDetail: "正在同步申请详情,请稍候...", loadingButlerInfo: "正在同步管家信息...", loadingManagerInfo: "正在加载管家信息", loadingPaymentPreview: "正在同步支付预览,请稍候...", loadingShort: "同步中", managerContactSummary: "当前区域共有 {count} 位管家可联系", managementContacts: "宿管与管理员", dormitoryManagerTag: "宿管", counselorTag: "管理员", noManagerContacts: "暂无管理联系人", managerFallback: "社区管家", managerInitialFallback: "管", managerWechatCopied: "管家微信已复制", mealDeliveryJumpFailed: "打开点餐小程序失败", multiButlerName: "{name} 等{count}位管家", myBill: "本月账单", noButlerInfo: "暂未获取到管家信息", noContactPhone: "暂无联系电话", noManagerWechat: "暂无管家微信", notCheckedInDesc: "长租公寓为海外青年提供高端社区服务\n请先前往选房大厅挑选心仪套间", notCheckedInTitle: "您还没有在租房间", onDutyCount: "{count}人值班", online: "当前在线 · 响应时间 < 5分钟", onlineSingle: "1人在线", paidOff: "已结清", pendingDispatch: "待下发", payBill: "去支付", pendingAssignment: "待审核分配", pendingContractFound: "发现待签合同", pendingSync: "待同步", payMethodLabel: "押付方式", primaryButlerTag: "主责", publicService: "公寓精选服务", refreshFailed: "刷新失败,请稍后重试", refreshStatus: "刷新状态", refreshing: "刷新中...", reviewStep: "管家审核", roomTypeInfo: "房型信息", applicationPendingTitle: "申请单已提交,等待审核", applicationPendingDesc: "您的申请单已提交,管家审核通过后将进入验房环节。", applicationPendingNote: "申请单审核中,请耐心等待管家通知。", applicationPendingPaymentTitle: "请支付定金", applicationPendingPaymentDesc: "您的入住申请已提交,请先支付定金以确认预订。", applicationPendingPaymentNote: "支付定金后,管家会尽快审核您的申请并安排后续入住流程。", viewingPendingTitle: "预约看房已提交,等待确认", viewingPendingDesc: "您的预约看房申请已提交,请等待管家与您确认看房安排。", viewingPendingNote: "预约看房无需支付定金,请留意看房时间与后续通知。", viewingNoDepositToast: "预约看房申请无需支付定金", inspectionPendingTitle: "请预约并完成验房", inspectionPendingDesc: "当前流程已进入验房阶段,请按预约时间完成房间验收。", inspectionPendingNote: "验房完成后,系统将自动进入合同签署环节。", billPendingTitle: "账单已生成,请尽快支付", billPendingDesc: "当前流程已进入账单支付阶段,完成支付后即可进入入住办理环节。", billPendingNote: "请在规定时间内完成账单支付,逾期可能影响选房资格。", signContractDoneTitle: "合同已签署,等待办理入住", signContractDoneNote: "合同签署完成,请等待管家通知办理入住。", signContractPendingReview: "您的合同已经签署完成,当前正在等待管家审核,审核通过后将进入账单支付环节。", applicationNo: "申请编号", billNo: "账单编号", applicationStep: "申请单", inspectionStep: "验房", billStep: "账单", contractShort: "合同", checkinShort: "入住", applying: "申请中", inspecting: "验房中", pendingPayment: "待支付", pendingSignature: "待签约", pendingCheckin: "待入住", roomDeviceUnconfigured: "房间智能设备未配置", signContract: "去签约", signContractDesc: "系统已生成待签合同,当前流程已进入签订合同阶段,完成签约后即可进入账单支付环节。", signContractNow: "请尽快签订合同", smartAvailableAfterCheckin: "入住后可使用智能设备", smartControl: "全屋智能", smartLockEntryDesc: "我的钥匙 · 门锁密码 · 录入指纹", smartDeviceConnected: "已接入 {count} 台智能设备", smartDeviceEmpty: "当前房间暂无智能设备", smartDeviceLoadFailed: "智能设备加载失败", smartDeviceSyncFailed: "智能设备同步失败", statusUpdated: "状态已刷新", stayService: "住中申请", submitBookingStep: "提交预定", submitRequest: "提交申请", syncingSmartDevices: "正在同步智能设备...", title: "我的入住", unpaid: "待支付", unknownText: "未知", viewAll: "全部", viewBill: "查看账单", currentTaskTitle: "当前任务", currentStepTag: "当前", flowProgressTitle: "流程进度", nextFlowFallback: "下一步流程", nextStepDispatchPrefix: "等待管家发出", nextStepDispatchSuffix: ",下发后即可继续下一步操作。", nextStepDispatchDescPrefix: "当前流程正在等待管家发出", paymentActionLabel: "本次支付", goInspection: "去验房", profileSignedDesc: "您的住宿合同已经完成签署,管家会尽快为您安排办理入住流程。", profileInspectionPendingDesc: "您的验房单已提交成功,当前正在等待管家审核,审核通过后将进入合同签署环节。", profileContractPendingDesc: "您的合同已经签署完成,当前正在等待管家审核,审核通过后将进入账单支付环节。", profileDepositPendingDesc: "您的定金已支付成功,当前申请正在等待管家审核和后续处理。", processedDepositPendingTitle: "定金已支付,等待管家处理", statusWaitingRoomAssign: "等待管家排房", waitingRoomAssignDesc: "当前暂无待支付定金账单,管家正在为您排房,请耐心等待。", viewDetail: "查看详情" } }, index: { loadingBrand: "绿居公寓", shareTitle: "绿居公寓 - 国际化青年社区", tabMessageCenter: "消 息", tabMyApplication: "申请单", tabProfileCenter: "我 的", tabSelectRoom: "选 房", tabStayService: "入 住", myTodo: "我的待办", noTodoNow: "当前暂无待办事项", pendingCount: "待处理 {count} 项", currentPendingCount: "当前共 {count} 项待处理", noTodos: "暂无待办", viewTodo: "查看", itemUnit: "项", pendingContract: "待签合同", inspectionTodo: "验房单", pendingTask: "待办事项", todoType: "待办类型", goHandle: "去处理", goPay: "去支付", goSign: "去签署", goInspect: "去验房", unableHandle: "无法处理", todoCodeMissing: "当前待办单号不完整", todoRouteMissing: "当前类型暂未配置跳转入口", todoJumpFailed: "待办跳转失败", todoEmptyType: "当前类型暂无可处理的待办明细", todoActionDetail: "点击下方单号查看待办详情", todoActionTicket: "点击下方单号识别工单并进入处理", todoActionBill: "点击下方单号进入账单处理", todoActionContract: "点击下方单号进入协议签署", todoActionInspection: "点击下方单号进入验房处理", todoUnknownTicketType: "未识别工单类型", pendingContractTitle: "待签合同", inspectionDraft: "草稿", inspectionMoveIn: "入住检查", inspectionInProgress: "进行中" } } }, pkgAccount: { auth_result: { auth_result: { approvedPleaseLogin: "审批已通过,请登录", descApproved: "您的注册申请已审批通过,现在可以前往登录。", descPendingDefault: "当前申请正在审批中,审批通过前无法登录。", descPendingRecords: "当前展示的是该申请单的审批状态,可下拉或点击按钮刷新最新结果。", descRejectedDefault: "请根据驳回原因修改信息后重新提交注册申请。", descRejectedRecords: "当前展示的是该申请单的审批结果,请根据驳回原因修改信息后重新提交注册申请。", descUnsubmitted: "请先提交注册申请单,审批通过后才算注册成功。", fallbackNone: "-", fetchStatusFailed: "获取审批状态失败", goLogin: "去登录", labelAccount: "注册账号", labelCertificateNo: "证件号", labelIdentityType: "人员类型", labelName: "姓名", latestDetailMissing: "未查到最新详情,已展示列表记录", navTitle: "注册申请结果", refreshStatus: "刷新审批状态", refreshing: "刷新中...", remarkApproved: "通过备注", remarkPending: "审批备注", remarkRejected: "驳回原因", resubmitRegister: "重新提交注册申请", roleDomestic: "中国籍", roleForeign: "外籍人员", statusApproved: "已通过", statusPending: "审核中", statusRejected: "已驳回", submittedInfoTitle: "已提交信息", titleApproved: "注册审批已通过", titlePending: "注册申请已提交", titleRejected: "注册审批未通过", titleUnsubmitted: "您还未提交注册申请", unsubmitted: "未提交", viewRegistrationRecords: "查看注册记录" } }, login: { login: { accountLabel: "账号 / 邮箱", accountPlaceholder: "请输入账号或邮箱", goRegister: "去注册", loading: "加载中...", loginFailed: "登录失败,请稍后重试", loginSuccess: "登录成功", noAccount: "还没有账号?", pageDesc: "登录绿居公寓,探索您的国际化青年社区", pageTitle: "欢迎回来", passwordLabel: "密码", passwordPlaceholder: "请输入密码", submitLogin: "立即登录", submitting: "登录中...", validateRequired: "请输入账号和密码", viewRegistrationRecords: "查看注册记录", viewRegistrationRecordsDesc: "未登录也可查看当前微信账号提交的注册申请记录" } }, register: { register: { admissionNoticeAttachmentLabel: "入学通知书(在职证明)附件", accountLabel: "登录账号", accountPlaceholder: "请输入登录账号", accountShortTitle: "账号", accountSection: "账号信息", accountSectionDesc: "用于登录和接收后续通知", attachmentNotImage: "当前附件不是图片", basicSectionDesc: "根据身份展示对应的证件和字段", basicSection: "基础实名信息", chinaText: "中国", countryFixedText: "中国籍固定", countryLabel: "国籍", countryLoadFailed: "国家列表加载失败", countrySearchHint: "支持模糊搜索", countrySearchPlaceholder: "搜索国家、地区或代码", countrySearchSubtitle: "可按中文、英文或国家代码搜索", countrySearchTitle: "选择国籍", countryPlaceholder: "请选择国籍", dictLoadFailed: "字典加载失败,稍后可重试", dietaryLabel: "饮食习惯", dietaryPlaceholder: "请选择饮食习惯", documentAttachmentLabel: "证件附件", documentExpiryLabel: "证件到期时间", documentImageOnlyTip: "证件附件仅支持图片,请重新上传", documentTypeLabel: "证件类型", documentLabel: "证件号", documentPlaceholder: "请输入证件号", domesticIdentity: "中国籍", draftTipDefault: "未完成内容会自动保存,可随时返回继续填写", draftTipSaved: "当前填写内容已自动保存", emailCodeLabel: "邮箱验证码", emailCodePlaceholder: "请输入邮箱验证码", emailLabel: "邮箱", emailPlaceholder: "请输入邮箱", foreignIdentity: "外籍人员", finishAndSubmit: "完成并提交", genderLabel: "性别", genderMale: "男", genderFemale: "女", goLogin: "去登录", hangzhouPropertyLabel: "杭州有无房产", hasAccount: "已有账号?", heroKicker: "绿居公寓登记入口", hobbyLabel: "兴趣爱好", hobbyPlaceholder: "请选择兴趣爱好", idCardBackTip: "请确保有效期和国徽信息清晰", birthdayLabel: "生日", birthdayPlaceholder: "请选择生日", idCardBackAttachmentLabel: "身份证反面附件", idCardFrontAttachmentLabel: "身份证正面附件", idCardFrontTip: "请保持边缘完整、无遮挡", idCardLabel: "身份证号", idCardPlaceholder: "请输入身份证号", imageUploadedTip: "已上传图片,可点击查看大图", identityShortTitle: "实名", identityTypeLabel: "身份类型", identityTypeTip: "切换后会同步调整国籍、证件类型和上传要求", loading: "加载中...", nameLabel: "姓名", namePlaceholder: "请输入真实姓名", navTitle: "注册账号", noMatchedCountry: "没有找到匹配的国家或地区", noSelectableCountry: "当前暂无可选国家", noSelectableOptions: "当前暂无可选项", noText: "无", pageDesc: "账号信息和实名认证资料需要一起填写完成,提交的是注册申请单,审批通过后才算注册成功。", pageTitle: "注册并提交实名资料", passportAttachmentLabel: "护照附件", passportImageOnlyTip: "护照附件仅支持图片,请重新上传", passportExpiryLabel: "护照到期时间", passportLabel: "护照号", passportPlaceholder: "请输入护照号", passwordLabel: "登录密码", passwordPlaceholder: "请输入 6 位及以上密码", previousStep: "上一步", phoneLabel: "手机号", phonePlaceholder: "请输入手机号", preferenceSectionDesc: "选填项,用于更好地匹配入住生活偏好", preferenceSection: "偏好信息", preferenceShortTitle: "偏好", profileSectionDesc: "上传证件和补充资料,便于审核", profileSection: "认证档案", profileShortTitle: "档案", religionLabel: "宗教信仰", religionPlaceholder: "请选择宗教信仰", restoreDraftCancel: "不用", restoreDraftConfirm: "填入", restoreDraftContent: "是否填入上次未完成或提交失败时缓存的注册信息?", restoreDraftSuccess: "已填入上次失败数据", restoreDraftTitle: "发现未完成的数据", reupload: "重新上传", reselect: "重新选择", schoolLabel: "就读学校", schoolPlaceholder: "请输入就读学校(选填)", stepAccountDesc: "先完成登录账号、密码和邮箱信息。", stepIdentityDesc: "填写姓名、身份、手机号和国籍等基础资料。", stepProfileDesc: "补充证件、附件和审核所需资料。", stepPreferenceDesc: "最后补充选填偏好信息,然后完成提交。", selectDate: "请选择日期", nextStep: "下一步", submitFailed: "提交失败,请稍后重试", submitPending: "申请已提交,待审批", submitRegister: "提交注册申请", submitting: "提交中...", uploadFailed: "上传失败,请重试", uploadAdmissionNotice: "点击上传入学通知书/在职证明", uploadClearImageTip: "建议上传清晰的图片版本", uploadDocument: "点击上传证件图片", uploadIdBack: "点击上传身份证反面", uploadIdFront: "点击上传身份证正面", uploadImageOption: "上传图片", uploadPassport: "点击上传护照图片", uploadPassportTip: "优先上传正面完整清晰的图片", uploadSuccess: "上传成功", uploading: "上传中...", validateEmail: "请输入正确的邮箱地址", validateIdCard: "请填写身份证号", validateIdCardAttachments: "请上传身份证正反面附件", validateIdentityBasic: "请完善性别、手机号和国籍", validatePassportAttachment: "请上传护照图片", validatePassportAttachmentImage: "护照附件仅支持图片格式", validatePassportBasic: "请填写护照号和护照到期时间", validatePasswordLength: "登录密码至少 6 位", validatePhone: "请输入正确的手机号", validateProfile: "请完善工作单位/就读学校和杭州房产情况", validateRequiredStepBasic: "请先填写账号、密码和邮箱", validateRequiredBasic: "请先填写账号、密码、邮箱和姓名", validateRequiredName: "请填写真实姓名", validateSelectDocumentType: "请选择证件类型", validateDocumentBasic: "请填写证件号和证件到期时间", validateDocumentAttachment: "请上传证件图片", validateDocumentAttachmentImage: "证件附件仅支持图片格式", viewImage: "查看图片", viewRegistrationRecords: "查看注册记录", viewRegistrationRecordsDesc: "如果当前微信账号已提交过申请,可直接查看历史记录和审批状态", workUnitLabel: "工作单位/就读学校", workUnitPlaceholder: "请输入工作单位/就读学校", yesText: "有" } }, registration_records: { accountLabel: "注册账号", approvalRemarkLabel: "审批意见", approvedAtLabel: "审批时间", emptyDesc: "当前微信账号还没有提交过人员注册申请。", emptyTitle: "暂无注册记录", goRegister: "去提交注册申请", idNumberLabel: "证件号", loadError: "注册记录加载失败", loadingDesc: "正在同步当前微信账号提交的注册申请记录,请稍候。", loadingMore: "加载中...", loadingTitle: "注册记录加载中", navTitle: "注册记录", noMore: "没有更多记录了", phoneLabel: "手机号", providerUnavailableDesc: "请在微信小程序中打开后,再查看当前微信账号提交的注册记录。", providerUnavailableTitle: "当前无法获取微信身份", pullUpMore: "上拉加载更多", registrationFallbackTitle: "人员注册申请", rejectReasonLabel: "驳回原因", statusAll: "全部", statusApproved: "已通过", statusPending: "审核中", statusProcessing: "处理中", statusRejected: "已驳回", submittedAtLabel: "提交时间" } }, pkgBooking: { book: { book: { bookingFor: "你正在预约", bookingStatus: "当前状态", checkInDate: "填写预订时间", checkInDesc: "支付后会先生成预定单并进入审核,不会直接占用房间资源。", deposit: "定金", endDate: "离开日期 (Check-out)", nightUnit: "晚", pendingPayment: "待支付定金", roomTypeLabel: "房型:", selectDate: "请选择日期", startDate: "入住日期 (Check-in)", stayNights: "入住晚数", submitOrder: "进入支付页", title: "预订确认" } }, book_viewing: { book_viewing: { availableTimeLabel: "可约时段", backTitle: "返回", bookingDateLabel: "预约日期", budgetLabel: "租金预算 (元/月)", budgetPlaceholder: "请输入您的心理价位", defaultInfoDesc: "专属管家为您提供一对一带看服务", duration1: "1-3个月", duration2: "4-6个月", duration3: "7-9个月", duration4: "10-12个月", duration5: "1年以上", durationLabel: "预计租住时长", emptyRoomTypesDesc: "当前暂无可用房型,请稍后再试", loadFailed: "房型加载失败", mapSelectFailed: "地图选择失败,请手动输入", navTitle: "预约现场带看", popupSubtitle: "选择您心仪的房型与区域", priceNegotiable: "价格面议", roomTypeLabel: "意向房型", remarkArea: "意向区域:{area}", remarkBudget: "租金预算:{budget} 元/月", remarkDuration: "预计租住时长:{duration}", remarkPayMethod: "支付方式:{payMethod}", remarkRoomType: "意向房型:{roomType}", remarkSource: "当前来源:{room}", remarkTail: "备注:请宿管确认带看安排;若带看完成并锁定房号,可转为预定单通知租客支付。", remarkTime: "看房时间:{date} {time}", remarkTitle: "预约看房申请", remarkWorkplace: "工作/通勤地点:{workplace}", rentalNeeds: "您的租住需求", rentalNeedsDesc: "帮助管家更好地为您推荐房源", selectDurationRequired: "请选择预计租住时长", selectedTimeLabel: "已选时间", selectTimeRequired: "请选择看房时间段", selectViewingTime: "选择看房时间", selectViewingTimeDesc: "请选择您方便的时间段", submitBooking: "提交预约", submitFailed: "预约提交失败", submitHint: "提交后专属管家将尽快与您联系", submitSuccessContent: "您的预约看房申请已提交,请等待管家联系", submitSuccessTitle: "预约成功", submitting: "提交中...", today: "今天", tomorrow: "明天", week0: "周日", week1: "周一", week2: "周二", week3: "周三", week4: "周四", week5: "周五", week6: "周六", workplaceLabel: "工作/通勤地点", workplacePlaceholder: "请输入主要通勤地点" } }, booking_detail: { booking_detail: { areaLabel: "所属区域", buildingFloorLabel: "楼栋楼层", cachedDetailShown: "网络异常,已展示最近同步详情", dateRangeJoiner: " 至 ", emptyDesc: "当前暂无可查看的预订详情,请先前往预订记录确认订单。", emptyTitle: "暂无预订记录", flowStep1: "1. 已支付,等待角色审批", flowStep2: "2. 审批通过,等待分配管家", flowStep3: "3. 已分配管家,等待分配房号", flowTitle: "当前流程", loadFailed: "预订详情加载失败", loadingDesc: "正在同步该预订的真实详情,请稍候。", loadingTitle: "订单加载中", navTitle: "预订详情", orderNoLabel: "预定单号", rejectReasonTitle: "驳回原因", roomNoLabel: "房间号", roomTypeLabel: "风格房型", stayDateLabel: "入住时间", submittedAtLabel: "提交时间" } }, booking_list: { booking_list: { bookingFallbackTitle: "房源预订", buildingFloorLabel: "楼栋楼层", cachedListShown: "网络异常,已展示最近同步记录", dateRangeJoiner: " 至 ", emptyDesc: "当前暂无预订记录,完成预订后会在这里展示。", emptyTitle: "暂无预订记录", goSelectRoom: "去选房", loadFailed: "预订记录加载失败", loadingDesc: "正在同步您的真实预订记录,请稍候。", loadingTitle: "订单加载中", navTitle: "预订记录", stayDateLabel: "入住时间", submittedAtLabel: "提交时间" } }, pay: { pay: { billTo: "收款方", bookingPeriod: "预订时间", company: "绿居物业管理有限公司", fallbackAction: "改为提交入住申请", fallbackDesc: "当前版本还未接通真实定金支付。你可以先改走已接好的入住申请提交流程,后续由工作人员跟进。", fallbackNavigateDesc: "支付接口暂未接入,先提交入住申请,由工作人员继续跟进。", fallbackNavigateTitle: "入住申请", fallbackTitle: "支付接口暂未接入", laterAction: "我知道了", location: "楼栋位置", nightUnit: "晚", payNow: "确认支付并提交预订", paying: "支付中...", paymentAmount: "应付定金", paymentMethod: "选择支付方式", pendingTitle: "支付接口待接入", roomType: "房源风格", roomTypeNameLabel: "房型", stayNights: "入住晚数", title: "支付定金", toLabel: "至", total: "合计" } } }, pkgExplore: { download: { download: { galleryImage: "游戏攻略图", galleryImageLong: "游戏攻略图游戏攻略图游戏攻略图", navTitle: "资料图库", searchButton: "搜 索", searchPlaceholder: "请输入搜索关键词" } }, filter: { filter: { comprehensiveLabel: "综合", navTitle: "应用专区", priceLabel: "价格", product1: "蛋仔派对", product2: "保卫萝卜", product3: "旅行青蛙", product4: "辐射避难所", product5: "王国保卫战", product6: "崩坏 · 星穹铁道", product7: "纪念碑谷", purchasedSuffix: "人已购", salesLabel: "销量", sortDefault: "默认", typeLabel: "类型" } }, sign: { sign: { checkInNow: "立即签到", checkInRewardHint: "坚持每天连续签到可以获得多重奖励哦", checkInSuccess: "签到成功", checkedInFor: "已连续签到", continuousCheckIn: "连续签到", daysAndEarned: "天,获得", daysRewardHint: "天可获得额外奖励哦!", goComplete: "去完成", more: "更多", notice1: "恭喜 付*其 连续7天签到,获得 300积分 奖励", notice2: "恭喜 徐*圆 连续7天签到,获得 300积分 奖励", notice3: "恭喜 蔡*东 连续7天签到,获得 300积分 奖励", pointsRecord: "积分记录", pointsUnit: "积分", taskDesc: "抓住那只猪吖", taskName: "任务名称", taskSectionTitle: "做任务领金币", warmTip: "温馨提示:", warmTipDesc: "每日签到可获得10积分奖励,连续完成7天签到可能获得额外奖励,连续签到满7天后将会重置签到记录。" } }, store_detail: { store_detail: { addressLabel: "公寓地址", apartmentName: "公寓详情", collapse: "收起", contactManager: "联系管家", expandAll: "展开全部", loading: "加载中...", loadingManagerInfo: "正在加载管家信息", navigate: "导航", noAddress: "暂无地址", noImage: "暂无图片", noLocation: "暂无位置信息", noServicePhone: "暂无联系电话", parseStoreDataFailed: "解析小区数据失败", phoneConsult: "电话咨询", selectContact: "选择联系人", pricePending: "待定", priceUnit: "/月", roomSectionTitle: "在租房型({count})", sectionTitle: "配套设施", share: "分享", shareTitle: "小区详情", storeIntro: "小区简介", viewDetails: "查看详情" } }, room_detail: { room_detail: { addressHint: "查看地图位置", allRoomsLoginContent: "请先登录后再预订该房间。", apartmentName: "公寓", applyStay: "申请入住", applyViewing: "预约看房", areaLabel: "所属区域", basicInfo: "基础信息", bookRoom: "立即预订", bookingInfo: "预订信息", bookingRules: "预订规则", buildingLabel: "楼栋", collapse: "收起", englishNameLabel: "英文名称", expandAll: "展开全部", floorLabel: "楼层", imageCount: "{count} 张图片", imageTab: "图片", loginTitle: "请先登录", navigate: "导航", needApproval: "需审核", noAddress: "暂无地址", noApprovalNeeded: "无需审核", noImage: "暂无图片", noLocation: "暂无位置信息", noPreviewImage: "暂无预览图片", navDetail: "房型详情", orientationLabel: "朝向", payMethodLabel: "支付方式", payMethodPrefix: "支付方式:", priceLabel: "价格", pricePending: "待定", pricePrefix: "价格:", priceUnit: "/月", roomCodeLabel: "房号", roomDesc: "房间介绍", roomTypeApplyLoginContent: "请先登录后再提交该房型的看房申请。", roomTypeCodePrefix: "房型编码:", roomTypeDesc: "房型介绍", roomTypeFallback: "房型", roomTypeLabel: "房型", roomTypeNameLabel: "房型名称", roomSectionTitle: "房间配置", sectionTitle: "房间配置", sectionSubtitle: "{count} 项配置", share: "分享", shareTitle: "房型详情", statusLabel: "状态", stayApplicationSuffix: "入住申请", stayLoginContent: "请先登录后再提交入住申请。", swipeUpHint: "上滑查看详情", unitLabel: "单元", viewLargeImage: "查看大图", viewLargeImageDesc: "点击查看当前图片的大图预览。", vrPreview: "VR预览", vrPreviewDesc: "切换到沉浸式看房模式。", vrTab: "VR", vrViewingTitle: "VR看房" } }, vr_preview: { vr_preview: { defaultTitle: "VR看房", emptyPreview: "暂无VR预览画面", modeChip: "VR预览模式", noAsset: "暂无VR预览素材", placeholderSubtitle: "当前房型已保留 VR 入口,后续可继续接入更完整的沉浸式资源。", posterSubtitle: "当前展示 VR 预览海报,可点击查看大图。", viewFullscreen: "查看全屏预览", waitingAsset: "等待素材接入" } } }, pkgService: { application_detail: { application_detail: { apartmentLabel: "所属公寓", applicantLabel: "申请人", applicationCodeLabel: "申请编号", applicationRemarkTitle: "申请说明", applicationTypeLabel: "申请类型", appliedRoomTypeLabel: "申请房型", backList: "返回列表", basicInfoTitle: "基础信息", budgetKey: "租金预算", codeCopied: "申请编号已复制", commuteKey: "工作/通勤地点", copy: "复制", dateRangeJoiner: " 至 ", emptyRemark: "暂无补充说明", intendedRoomTypeLabel: "意向房型", leaseDurationKey: "预计租住时长", leaseTermLabel: "预计租期", missingBillCode: "申请单编号缺失", missingContractNo: "合同编号缺失", inspectionPendingReviewHint: "验房审批中", checkinPendingHint: "宿管正在办理入住,请耐心等待", refreshAction: "刷新", navTitle: "申请详情", paymentStatusLabel: "Payment Status", paymentStatusPending: "Pending Payment", paymentStatusPaid: "Paid", paymentStatusRefunded: "Refunded", paymentStatusExempt: "No Payment Needed", payDepositSoon: "Please complete the deposit payment soon", paymentMethodKey: "支付方式", preferredAreaKey: "意向区域", preferredRoomTypeKey: "意向房型", paymentStatusRefunded: "已退款", paymentStatusExempt: "无需支付", payDepositSoon: "请尽快完成定金支付", paymentMethodKey: "支付方式", preferredAreaKey: "意向区域", preferredRoomTypeKey: "意向房型", remarkTitle: "补充说明", statusApproved: "已通过", statusFinished: "已结束", statusLabel: "当前状态", statusPending: "待审核", statusPendingPayment: "请支付定金", statusProcessing: "处理中", statusRejected: "已拒绝", statusReminderTitle: "当前进度提醒", statusWaitingRoomAssign: "等待管家排房", stayApplicationTitle: "入住申请", stayApplicationType: "入住申请", submittedAtLabel: "提交时间", viewBill: "查看关联账单", viewingApplicationTitle: "预约看房申请", viewingApplicationType: "预约看房", viewingInfoTitle: "带看信息", viewingTimeKey: "看房时间", viewingTimeLabel: "预约时间" } }, components: { CurrentApplicationBillPanel: { applicationNoPrefix: "申请单号:", billInfoIncomplete: "账单信息不完整", billLoadFailed: "账单加载失败", billNoLabel: "账单号", billPaymentDesc: "账单支付", billRecordFallback: "账单记录", buttonConfirming: "确认结果中...", buttonLaunching: "拉起支付中...", buttonPolling: "查询结果中({current}/{total})", continuePayButton: "继续支付", createTimeLabel: "创建时间", currentPaymentLabel: "本次支付", emptyApplicationDesc: "当前未找到可关联的申请单,请先前往“我的申请”选择具体申请后查看账单。", emptyApplicationTitle: "暂无可查询申请单", emptyPendingDesc: "当前申请单下没有查询到待支付账单,后续有新账单时会在这里展示。", emptyPendingTitle: "暂无待支付账单", goToMyApplication: "前往我的申请", heroDescAutoResolve: "当前将优先读取最近申请单的编号来查询关联账单。", heroDescResolved: "当前页面已按申请单编号查询其关联的待支付账单记录。", heroTitle: "待支付账单", loadingDesc: "正在同步您的待支付账单,请稍候。", loadingTitle: "账单加载中", paidAmountLabel: "已付金额", paymentActionAcknowledge: "我知道了", paymentCanceled: "已取消支付", paymentDescFailed: "系统暂时未能确认支付成功,您可以查看提示后稍后重试。", paymentDescLaunching: "系统正在调起微信支付,请在微信收银台中完成付款后返回。", paymentDescPolling: "支付完成后,系统会自动向后台查询支付状态,无需手动刷新。", paymentDescSuccess: "本次支付已同步完成,账单状态已更新。", paymentFailedError: "支付失败", paymentFailedHint: "暂未查询到支付成功结果,请稍后刷新账单确认。", paymentHintLaunching: "已为您准备好支付信息,等待微信支付完成。", paymentHintLaunchingToast: "正在唤起微信支付,请在微信内完成付款。", paymentHintPaidWaiting: "已支付成功,正在等待后台确认账单状态。", paymentHintPolling: "正在与后台核对支付状态,请稍候。", paymentParamIncomplete: "微信支付参数不完整", paymentProgressLabel: "结果确认进度", paymentProgressWaiting: "等待支付完成", paymentResultFailed: "后台返回支付失败", paymentResultFailedRetry: "支付结果确认失败,请稍后刷新账单确认", paymentResultPending: "后台仍在处理中", paymentResultSuccess: "后台确认支付成功", paymentStageDefault: "支付处理中", paymentStageFailed: "支付未完成", paymentStageLaunching: "正在唤起微信收银台", paymentStagePolling: "正在同步支付结果", paymentStageSuccess: "支付结果已确认", paymentStatusPending: "处理中", paymentSuccessAllDone: "支付结果已确认,当前申请单账单已全部完成。", paymentSuccessPendingBills: "支付结果已确认,当前申请单仍有其他待支付账单。", paymentTimeoutError: "支付结果确认超时,请稍后刷新账单确认", paymentTipsDefault1: "支付成功后,系统可能需要几秒钟同步账单状态。", paymentTipsDefault2: "请不要重复点击支付,也不要提前关闭当前页面。", paymentTipsDefault3: "如果超时未完成,系统会自动再校验一次账单状态。", paymentTipsFailed1: "若您已完成付款,请稍后刷新账单,避免重复支付。", paymentTipsFailed2: "若微信侧已扣款但页面未更新,请联系管家或客服协助核实。", paymentTipsFailed3: "若未扣款,可返回账单列表后重新发起支付。", paymentTipsSuccess1: "若当前申请单还有其他待付账单,可继续在当前页完成支付。", paymentTipsSuccess2: "若当前账单已全部支付完成,系统会自动返回首页。", paymentTipsSuccess3: "支付记录同步可能略有延迟,刷新后即可看到最新状态。", paymentTipsTitleDefault: "温馨提示", paymentTipsTitleFailed: "处理建议", paymentTipsTitleSuccess: "完成说明", paymentTitleDefault: "支付处理中", paymentTitleFailed: "支付结果确认失败", paymentTitleLaunching: "请完成微信支付", paymentTitlePolling: "正在确认是否支付成功", paymentTitleSuccess: "支付成功", pendingPaymentAmountLabel: "订单金额", pendingPaymentChannelLabel: "支付渠道", pendingPaymentDescLabel: "支付说明", pendingPaymentExpireLabel: "剩余支付时间", pendingPaymentExpired: "已失效", pendingPaymentOrderNoLabel: "支付单号", pendingPaymentTitle: "未完成支付订单", pendingAmountLabel: "待支付总额", pendingCountLabel: "待支付数量", refundStatusLabel: "退款状态", relatedBusinessNoLabel: "关联业务编号", remainingAmountLabel: "待付金额", remarkLabel: "备注", resultLabel: "处理结果", totalChargeLabel: "应收合计", wechatCodeFailed: "获取微信登录凭证失败", wechatPayButton: "微信支付", cancelOrderButton: "取消订单", cancelOrderContent: "取消后将关闭当前未支付订单,是否继续?", cancelOrderFailed: "取消订单失败", cancelOrderLoading: "取消中...", cancelOrderSuccess: "订单已取消", cancelOrderTitle: "取消订单", paymentNoticeAmountLabel: "支付金额", paymentNoticeBillLabel: "账单号", paymentNoticeCancel: "稍后再付", paymentNoticeConfirm: "继续支付", paymentNoticeItemLabel: "费用项目", paymentNoticeLine1: "请确认本次支付账单和金额无误后再继续付款。", paymentNoticeLine2: "支付完成后,账单状态可能需要几秒同步,请勿重复支付。", paymentNoticeLine3: "若支付中断或页面关闭,可稍后返回账单页查看最新结果。", paymentNoticeTitle: "用户须知" } }, contract_detail: { contract_detail: { contractNoLabel: "合同编号:", emptyDesc: "页面未带入影像地址,且通过合同编号也未获取到可预览的合同内容。", emptyTitle: "暂无合同内容", imageModeChip: "A4 影像模式", loadingDesc: "正在获取合同影像与正文,请稍候。", loadingTitle: "合同加载中", navTitle: "合同详情", notAvailable: "未获取", overviewTitle: "合同影像", signedChip: "已签合同", textModeChip: "正文预览模式", zoomSupportedChip: "支持缩放" } }, contract_sign: { contract_sign: { back: "返回", contractNoLabel: "合同编号:", contractNoMissing: "缺少合同编号", emptyDesc: "当前合同暂未返回可签约正文,请稍后再试。", emptyTitle: "暂无合同正文", footerTip: "签名前请确认您已完整阅读合同内容", fullscreenPreview: "点击全屏查看", fullscreenTitle: "合同全文", loadingDesc: "正在获取合同正文,请稍候。", loadingTitle: "合同加载中", navTitle: "合同签约", notAvailable: "未获取", overviewMeta: "阅读合同正文后完成签名提交,签约结果会同步到我的合同。", overviewTitle: "签约前确认", signAction: "我已阅读并同意,去签名", signFailed: "签约失败", signSuccess: "签约成功", signerMissing: "未获取到签名人姓名", signingLoading: "签约提交中...", submitting: "提交中...", uploadFailed: "签名上传失败" } }, device_control: { device_control: { actionSuccess: "操作成功", applySetting: "应用设置", commandFailed: "指令下发失败", commandSending: "指令下发中...", controlPanel: "控制面板", currentRoom: "当前房间", curtainClose: "关闭", curtainClosed: "窗帘已关闭", curtainOpen: "打开", curtainOpened: "窗帘已打开", curtainPause: "暂停", curtainPaused: "窗帘已暂停", deviceClosed: "已关闭", deviceDetail: "设备详情", deviceEnabled: "已开启", deviceIdMissing: "设备ID缺失", deviceMissing: "设备信息缺失", deviceOpened: "已打开", functionCodeMissing: "功能编码缺失", functionCount: "{count}项功能", pendingTag: "待完善", schemaApplied: "{name}参数已下发", sliderLabel: "亮度 / 数值", sliderUpdated: "滑块值已更新", syncHint: "操作完成后会自动刷新设备状态", unknownSchema: "未识别到参数模板", unsupportedBoxText: "当前功能暂未开放使用,点击反馈", unsupportedFunction: "{name}操作功能未完善" } }, message_detail: { message_detail: { actionButler: "去查看服务", actionDefault: "继续前往业务页", actionPayment: "去处理账单", actionSystem: "前往相关页面", backList: "返回消息页", categoryButler: "管家消息", categoryLabel: "消息分类", categoryPayment: "缴费账单", categorySystem: "系统通知", codeCopied: "通知编号已复制", codeLabel: "通知编码", contentTitle: "通知内容", copy: "复制", emptyContent: "暂无详细内容", expiredDesc: "当前消息详情已失效,请返回消息中心重新打开。", expiredHint: "消息缓存已失效", localSource: "本地业务消息", messageFallbackTitle: "消息通知", navTitle: "消息详情", remoteSource: "系统通知接口", sourceLabel: "消息来源", statusLabel: "当前状态", summaryTitle: "摘要" } }, my_application: { my_application: { apartmentLabel: "所属公寓", dateRangeJoiner: " 至 ", emptyDesc: "您还没有提交任何申请,去选房后可发起入住申请或预约看房。", emptyTitle: "暂无申请记录", goSelectRoom: "去选房", leaseTermLabel: "预计租期", loadError: "申请记录加载失败", loadingDesc: "正在同步您的入住申请记录,请稍候。", loadingMore: "加载中...", loadingTitle: "申请列表加载中", missingApplicationCode: "申请编号缺失", missingBillCode: "申请单编号缺失", navTitle: "我的申请", noMore: "没有更多申请了", occupantLabel: "入住人", pullUpMore: "上拉加载更多", refresh: "刷新状态", refreshSuccess: "申请状态已刷新", refreshing: "刷新中...", remarkLabel: "补充说明", statusAll: "全部", statusApproved: "已通过", statusFinished: "已结束", statusPending: "待审核", statusPendingPayment: "请支付定金", statusProcessing: "处理中", statusRejected: "已拒绝", statusReminderTitle: "当前进度提醒", statusWaitingRoomAssign: "等待管家排房", stayApplicationTitle: "入住申请", submittedAtLabel: "提交时间", toolbarSummary: "共 {total} 条申请", viewBill: "查看关联账单", viewingApplicationTitle: "预约看房申请", viewingTimeLabel: "预约时间" } }, my_contract: { my_contract: { actionSign: "去签约", actionViewDetail: "查看详情", contractPeriodLabel: "合同期限", contractTitle: "住宿合同", dateRangeJoiner: " 至 ", displayMetricLabel: "当前展示", emptyDesc: "切换筛选条件,或等待系统生成新的合同数据。", emptyTitle: "暂无对应的合同记录", loadingDesc: "正在同步您的合同数据,请稍候。", loadingTitle: "合同记录加载中", mySignatureLabel: "我的签名", navTitle: "我的合同", overviewSubtitle: "查看住宿合同、签约状态与有效期限", overviewTitle: "合同概览", pendingMetricLabel: "待签约/审批", recordTipLabel: "记录说明", relatedOrderLabel: "关联订单", signStatusLabel: "签署状态", signed: "已签名", statusApproved: "已通过", statusPending: "待审批", statusProcessing: "处理中", statusRejected: "已拒绝", tabAll: "全部", tabPending: "待签约", tipApproved: "合同已生效,可查看签约结果。", tipDefault: "请关注合同最新状态。", tipNeedSign: "待您完成签名后进入审批流程。", tipPending: "已提交签约信息,等待审批结果。", tipRejected: "合同未通过审批,请联系管理员处理。", unsigned: "待签名" } }, service_stub: { service_stub: { accessAssignDesc: "请在完成入住签约并录入人脸/实名信息后\n系统将自动为您分配通行权限", accessCodeDesc: "可用于社区大门、单元门及电梯通行", accessCodeTitle: "我的通行二维码", authRecordTitle: "授权记录", backHome: "返回首页", backPrev: "返回上一页", comingSoonTitle: "功能建设中", coupon: "优惠券", couponDesc: "租金水电抵扣", currentStatusDesc: "该功能当前仍在建设中,暂未开放正式办理入口。你可以先返回上一页,或回到首页继续查看已开放功能。", currentStatusTitle: "当前状态", dailyPoints: "每日签到领积分", defaultPageDesc: "该能力正在完善中,开放后会同步到个人中心的对应入口。", defaultPageTitle: "业务办理", goCheckIn: "去签到", lockEmptyRecord: "暂无门锁操作记录", lockNoAccessDesc: "您当前暂未分配智能门锁,或门锁暂未联网。\n入住后即可使用门锁密码、指纹录入与临时密码下发功能。", lockNoAccessTitle: "暂无门锁权限", noAccessPermission: "未获取通行权限", noteDesc: "后续接入真实能力后,这里会展示正式的业务入口、状态数据和办理记录。", noteTitle: "说明", oneTapUnlock: "录入指纹", pointsAvailable: "当前可用积分", pointsEmpty: "暂无积分明细", pointsMall: "积分商城", pointsMallDesc: "超值好物兑换", pointsRecordTitle: "积分明细", redeemRules: "兑换规则", tempPassword: "临时密码", visitorAccessAction: "临时访客授权", visitorAccessTitle: "访客通行", visitorEmpty: "暂无访客通行记录" } }, lock_control: { lock_control: { addFingerprint: "录入指纹", availableLocks: "可开门锁", connectingLock: "正在连接门锁...", currentLock: "当前门锁", currentRoomLock: "当前房间门锁", currentSelectionHint: "当前房间下共 {count} 个可操作门锁,当前已选“{name}”。", currentWillOperateRoomLock: "当前将操作当前房间门锁。", currentWillOperateSuiteLock: "当前将操作所选套间或公区门锁。", doorLock: "门锁", doorPassword: "门锁密码", fingerAdded: "指纹已录入", fingerModeFailed: "指纹模式下发失败", fingerStatus: "指纹状态", fingerprintGuideDesc: "请根据门锁提示,将手指自然贴合采集区并重复按压,直到门锁提示录入完成。", fingerprintGuideTip: "系统会自动刷新录入结果", fingerprintGuideTitle: "请重复按压指纹", fingerprintInstruction: "如需录入指纹,请先点击“录入指纹”,再按门锁提示完成采集。", keySyncing: "正在同步门锁钥匙...", keySyncFailed: "钥匙同步失败", loadingEnroll: "正在准备录入", lockCapabilityAfterCheckin: "完成入住后即可使用门锁能力。", lockKeys: "我的钥匙", missingRoomCode: "当前入住订单缺少房间编码,请联系管家配置。", missingUserCodeFinger: "缺少学工号,暂无法录入指纹", missingUserCodeKeys: "当前账号缺少学工号,暂无法同步门锁钥匙。", noAvailableLocks: "当前房间暂未查询到可用门锁。", noneAssigned: "暂未分配", notRecorded: "未录入", noCopyPassword: "暂无可复制密码", passwordCopied: "密码已复制", preparingFingerDesc: "已向门锁下发指令,请稍候片刻。", recorded: "已录入", roomLock: "房间门锁", roomOrPublicArea: "套间 / 公区", roomOrPublicAreaLock: "套间 / 公区门锁", selectedCount: "共 {count} 个", sendingFinger: "下发中...", syncCurrentRoomLocks: "正在同步当前房间下可操作的门锁。", tipsTitle: "使用说明", unlockWaitHint: "如门锁仍在等待,请继续按压后点刷新查看", useRoomPasswordFinger: "我的钥匙 · 门锁密码 · 录入指纹" } }, smart_control: { smart_control: { commandFailed: "指令下发失败", currentRoom: "当前房间", deviceOff: "已关闭", deviceRunning: "运行中", deviceSummary: "共 {count} 台设备,可进入详情页控制", disabled: "已关闭", emptyDesc: "当前房间未绑定智能设备", emptyTitle: "暂无可控设备", enabled: "已开启", loadFailedTitle: "设备加载失败", loadingDesc: "正在查询当前房间的可控设备...", loadingShort: "加载中", loadingTitle: "正在连接设备", missingFunctionCode: "功能编码缺失", missingRoomCode: "缺少房间编码", navTitle: "全屋智能", refreshStatus: "刷新状态", requestFailed: "设备列表请求失败", retry: "重新加载", sending: "发送中...", syncingStatus: "正在同步设备状态", toolbarTip: "点击设备进入详情并下发控制指令", unsupportedQuickControl: "设备暂不支持快捷控制", unsupportedSwitch: "该设备不支持快捷开关" } }, lost_found_publish: { lost_found_publish: { navTitle: "失物拾物", heroBadge: "社区服务", heroTitle: "发布失物或招领信息", heroDesc: "将失物或拾获信息同步给社区,方便后续核实与快速匹配。", formTitle: "物品信息", formDesc: "请补充关键字段,必填项越完整,越方便他人联系与认领。", typeLabel: "发布类型", typePlaceholder: "请选择失物或招领", typeLost: "失物", typeFound: "招领", itemTypeLabel: "物品类型", itemTypePlaceholder: "例如证件、钥匙、电子设备", itemNameLabel: "物品名称", itemNamePlaceholder: "请输入物品名称", placeLabel: "地点", placePlaceholder: "请输入丢失或拾取地点", whenLabel: "时间", selectDate: "选择日期", selectTime: "选择时间", whenTip: "可选,若已知大致时间可一并填写。", contractLabel: "联系人", contractPlaceholder: "请输入联系人", contractPhoneLabel: "联系电话", contractPhonePlaceholder: "请输入联系电话", remarkLabel: "备注", remarkPlaceholder: "可补充外观特征、认领说明或其他辅助信息", imagesLabel: "现场图片", uploadImage: "上传图片", imagesTip: "可选,上传现场图或物品图可提升识别效率。", submitTip: "发布前请确认信息准确,系统会按当前语言提交接口。", submitting: "发布中...", submitButton: "立即发布", uploadFailed: "图片上传失败", uploadOversize: "单张图片不能超过 5 MB", uploadExceed: "最多上传 6 张图片", validateItemType: "请输入物品类型", validateItemName: "请输入物品名称", validatePlace: "请输入地点", validateContract: "请输入联系人", validateContractPhone: "请输入联系电话", submitSuccess: "发布成功", submitFailed: "发布失败" } }, submit_request: { components: { BuildingSelector: { emptyDesc: "当前暂无可用楼栋,请稍后再试", emptyText: "暂无可选楼栋", loadFailed: "楼栋列表加载失败", loadFailedShort: "楼栋加载失败", loadingText: "楼栋加载中...", popupSubtitle: "选择您期望入住的楼栋", popupTitle: "选择意向楼栋", selectAreaFirst: "请先选择区域", selectBuilding: "请选择楼栋" }, DateRangeSelector: { dateDivider: "至", endLabel: "预计离开", endPlaceholder: "请选择离开日期", startLabel: "预计入住", startPlaceholder: "请选择入住日期" }, FloorSelector: { clearSelection: "不选择", emptyDesc: "当前暂无可用楼层,请稍后再试", emptyText: "暂无可选楼层", loadFailed: "楼层列表加载失败", loadFailedShort: "楼层加载失败", loadingText: "楼层加载中...", popupSubtitle: "选择您期望入住的楼层", popupTitle: "选择意向楼层", selectFloor: "请选择楼层" }, RoomTypeSelector: { emptyRoomTypes: "暂无可选房型", loadFailed: "房型列表加载失败", loadingRoomTypes: "房型加载中...", popupTitle: "选择意向房型", priceUnit: "/月", selectRoomType: "请选择意向房型" }, TagSelector: { emptyText: "暂无标签", loadingText: "标签加载中..." } }, submit_request: { applicationInfo: "申请信息", applicationType: "申请类型", applyRemarkPlaceholder: "请输入您的申请补充说明", applyRoomType: "申请房型", areaLabel: "所属区域", buildingLabel: "意向楼栋", currentRoom: "当前房间", dateCannotBefore: "{endLabel}不能早于{startLabel}", emptyHobbyTags: "暂无兴趣爱好标签", emptyLifestyleTags: "暂无生活习惯标签", expectedCheckin: "预计入住", expectedCheckout: "预计离开", floorLabel: "意向楼层", hobbyLabel: "兴趣爱好", leaseRange: "租期时间", lifestyleLabel: "生活习惯", paymentMethod: "支付方式", referencePrice: "参考价格", remarkLabel: "补充说明", remarkRequired: "请输入补充说明", roomTypeApplyBlockDesc: "已接入真实申请单接口,支持带出房型与区域编码后直接提交。", roomTypeApplyBlockTitle: "房型申请信息", roomTypeApplyDesc: "请确认房型、区域、偏好标签和租期信息后提交申请。", roomTypeApplyTitle: "房型申请", switchRoomType: "切换", summaryTitle: "申请摘要", expandSummary: "展开", collapseSummary: "收起", selectCheckinDate: "请选择入住日期", selectCheckoutDate: "请选择离开日期", selectDateEnd: "请选择{label}", selectDateStart: "请选择{label}", sourceDefaultDesc: "请填写您的入住意向、租期和补充说明。", stayApplyDefaultDesc: "请填写您的入住意向、生活偏好与预计租期后提交申请单。", stayApplyDefaultTitle: "入住申请", agreeAndSubmit: "同意并提交", confirmSubmitTitle: "提交前确认", confirmSubmitContent: "确认提交当前申请单吗?", confirmSubmitAction: "确认提交", confirmSubmitCancel: "再想想", noDepositReminderTitle: "申请已提交", noDepositReminderContent: "当前申请单暂无待支付定金账单,管家将为您排房,请耐心等待。", noDepositReminderConfirm: "我知道了", submitFailed: "申请单提交失败", submitRoomTypeApply: "提交房型申请", submitSuccess: "申请单提交成功", submitting: "提交中...", tagLoadFailed: "偏好标签加载失败" } }, utility_recharge: { utility_recharge: { navTitle: "账单管理" } }, ticket_center: { ticket_center: { navTitle: "工单中心", heroBadge: "SERVICE", heroTitle: "住中工单服务", heroDesc: "报修、续住、退宿、调宿、送水、清洁和意见建议都统一从这里进入,提交后可继续查看流转记录。" } }, ticket_workbench: { ticket_workbench: { areaLabel: "所属区域", assigneeLabel: "处理目标", attachmentsLabel: "附件图片", cancelProcess: "退出处理", cancelSupplement: "取消补充", changeRoomTypeLabel: "意向房型", cleaningTimeLabel: "预约清洁时间", contentLabel: "申请内容", currentFlowTag: "当前节点", currentStayInfo: "当前入住信息", currentStayOrder: "当前入住订单", emptyHistoryDesc: "当前类型还没有工单记录。", emptyHistoryTitle: "暂无工单记录", flowActionTitle: "可执行操作", historyTab: "记录查询", leaseLabel: "租期", loadMore: "加载更多", loadingMore: "加载中...", loadOrderFailed: "入住信息加载失败", noFlowContent: "暂无处理内容", noMore: "没有更多了", refresh: "刷新", refreshing: "刷新中...", remarkLabel: "补充说明", remarkPlaceholder: "请输入补充说明,帮助工作人员更快处理", roomLabel: "当前房间", roomTypeLabel: "当前房型", searchPlaceholder: "搜索工单标题或内容", selectAssignee: "请选择处理目标", selectDate: "请选择日期", selectTime: "请选择时间", submitSectionDefaultDesc: "以下内容将通过工单接口提交并进入后续流转。", submitTab: "提交申请", submitTicket: "提交工单", submitting: "提交中...", supplementAction: "补充信息", supplementLabel: "补充业务信息", supplementPlaceholder: "请输入{label}", ticketKicker: "WORK ORDER", uploadImage: "上传图片", uploadImageCountExceeded: "最多上传 6 张图片", uploadImageFailed: "图片上传失败,请重试", uploadImageOversize: "图片不能超过 5MB", uploadTip: "支持上传 JPG、PNG 等图片,单张不超过 5MB,最多 6 张。", uploadTipRepair: "支持上传 JPG、PNG 等图片,单张不超过 5MB,最多 6 张。报修至少上传 1 张图片。", checkoutTimeLabel: "预计退宿时间", renewalTimeLabel: "续住至", submittedAtLabel: "提交时间", submitSuccess: "工单提交成功", submitFailed: "工单提交失败", confirmSubmitTitle: "确认提交", confirmSubmitContent: "确认提交当前工单吗?", missingStayContext: "当前缺少入住订单或房间信息,暂无法提交工单", repairAttachmentRequired: "请上传报修附件图片", changeAreaRequired: "请选择意向房型", checkoutTimeRequired: "请选择退宿时间", checkoutReasonRequired: "请填写退宿原因", loadHistoryFailed: "工单记录加载失败", loadFlowsFailed: "工单流转加载失败", loadActionsFailed: "工单操作项加载失败", continueProcess: "继续处理", loadAssigneeFailed: "处理目标加载失败", submitSectionActionDesc: "当前工单正在处理中,提交后会继续流转。", submitSectionSupplementDesc: "当前工单处于挂起状态,补充信息后会继续流转。", currentStatusPending: "待处理", currentStatusProcessing: "处理中", currentStatusResolved: "已解决", currentStatusClosed: "已结束", allStatus: "全部", pendingStatus: "待处理", processingStatus: "处理中", resolvedStatus: "已解决", closedStatus: "已结束" } }, room_inspection: { room_inspection: { confirmSubmitDesc: "如有交接备注、异常背景或补充情况,可在提交前补充说明。", confirmSubmitSkip: "暂不填写", confirmSubmitTitle: "提交前确认", confirmSubmitAction: "确认提交", handoverInspection: "交付检查", inspectionHint: "建议逐项填写,异常情况请补充描述并上传照片。", pageTitle: "验房", pageDesc: "按当前订单查看并提交验房结果", inspectionListTitle: "验房记录", inspectionSwitcher: "验房单切换", inspectionRecordUnit: "份记录", roomNoLabel: "房间号", inspectionTypeLabel: "验房类型", inspectionStatusLabel: "当前状态", inspectionTimeLabel: "发起时间", inspectionRemarksLabel: "备注", inspectionRemarksPlaceholder: "可填写本次验房的补充说明", inspectionItemsTitle: "检查项", inspectionItemsDesc: "请根据现场情况逐项核对", inspectionItemUnit: "项", deviceFallback: "未命名设备", markAllNormal: "全部正常", normalResultOptionMissing: "未找到正常结果选项", allMarkedNormal: "已全部勾选正常", requiredTag: "必查", expectedQuantityLabel: "应有数量", inspectionResultLabel: "检查结果", checkedQuantityLabel: "实测数量", checkedQuantityPlaceholder: "请输入数量", issueDetailLabel: "异常说明", problemDetailLabel: "问题说明", problemDetailHint: "缺失、损坏或无法使用时请补充描述", problemDetailPlaceholder: "请描述异常、缺失或损坏情况", photosLabel: "现场照片", photosHint: "建议上传关键部位照片,便于后续确认", uploadPhoto: "上传照片", addPhoto: "添加", submitAction: "提交验房", loadingDesc: "正在同步验房数据...", emptyTitle: "暂无验房单", emptyDesc: "当前订单还没有可查看的验房记录。", emptyItemsTitle: "暂无检查项", emptyItemsDesc: "当前验房单还没有检查项明细。", submitSuccess: "验房单已提交", submitFailed: "提交失败", submitting: "提交中...", missingInspectionNo: "未获取到验房单", uploadFailed: "图片上传失败", chooseImageFailed: "选择图片失败", resultRequired: "请先完成所有检查项结果选择" } } }, components: { ContractSignDialog: { undo: "撤销", rewrite: "重写", close: "关闭", confirmSignature: "确认签名", footerTip: "签名前请确认您已完整阅读合同内容", closeBoardTitle: "关闭提示", closeBoardDesc: "您还未完成签名,确认要关闭吗?", continueSigning: "继续签名", continueClosing: "确认关闭", missingSignerName: "签名人缺失", writingHintZh: "请在此处手写中文正楷签名", writingHintEn: "Please write your signature here", signerNameMissingToast: "签名人信息缺失", signatureRequiredToast: "请先完成签名", boundsFailedToast: "获取签名范围失败", signatureTooSmallToast: "签名范围太小,请重新签名", exportFailedToast: "导出签名失败,请重试" }, ContractAlert: { actionText: "去签署", pendingDesc: "您有 {count} 份合同待签署", pendingTitle: "待签合同提醒" } } } } export default messages