{ "common": { "appName": "TBOSS Workbench", "tabMessages": "Messages", "tabWorkbench": "Workbench", "tabProfile": "Profile", "loading": "Loading…", "loadFailed": "Load failed", "noData": "No data", "noMessages": "No messages", "noDrafts": "No drafts", "noCompletedRecords": "No completed records", "initiate": "Initiate", "records": "Records", "more": "More", "settings": "Settings", "about": "About", "language": "Language", "darkMode": "Dark Mode", "themeDark": "Dark", "themeLight": "Light", "languageZhCN": "简体中文", "languageEn": "English", "languageZhTW": "繁體中文", "userName": "Zhang San", "salesDepartment": "Sales Dept · Account Manager", "version": "TBOSS OA v2.13.0", "save": "Save", "submit": "Submit", "cancel": "Cancel", "confirm": "Confirm", "selectedLabel": "Selected: ", "reset": "Reset", "publish": "Publish", "saveDraft": "Save Draft", "submitting": "Submitting…", "dataLoading": "Loading data…", "pageFooter": "You've reached the bottom ~ nothing more!", "submitApproval": "Submit for Approval", "saveDraftShort": "Save Draft", "delete": "Delete", "edit": "Edit", "add": "Add", "close": "Close", "copy": "Copy", "datePickerTitle": "Select Date Range", "today": "Today", "thisWeek": "This Week", "last7Days": "Last 7 Days", "thisMonth": "This Month", "lastMonth": "Last Month", "last30Days": "Last 30 Days", "thisQuarter": "This Quarter", "thisYear": "This Year", "startDateLabel": "Start Date", "endDateLabel": "End Date", "selectedDateRange": "Selected: ", "retry": "Retry", "confirmAdd": "Confirm Add", "confirmEdit": "Confirm Edit", "confirmSubmit": "Confirm Submit", "confirmPublish": "Confirm Publish", "confirmAction": "Are you sure you want to {action} this application?", "confirmExit": "Confirm Exit", "confirmReset": "Confirm Reset", "continueEditing": "Continue Editing", "discardAndExit": "Discard and Exit", "confirmPrompt": "Confirm to {action} this application?", "withdraw": "Withdraw Application", "withdrawAction": "Withdraw", "withdrawApplication": "Withdraw Application", "withdrawConfirm": "Confirm Withdraw", "withdrawConfirmTip": "Are you sure you want to withdraw this application? The approval process will be terminated.", "approve": "Approve", "reject": "Reject", "confirmApprove": "Confirm Approve", "confirmReject": "Confirm Reject", "preview": "Preview", "previewTitle": "Preview", "draft": "Draft", "pending": "In Approval", "approved": "Approved", "rejected": "Rejected", "expired": "Expired", "paid": "Paid", "unpaid": "Unpaid", "returned": "Returned", "completed": "Completed", "statusPending": "In Approval", "statusApproved": "Approved", "statusRejected": "Rejected", "statusDraft": "Draft", "statusWithdrawn": "Withdrawn", "statusReturned": "Returned", "statusDisabled": "Disabled", "statusWaitApprove": "Pending", "statusWaitPay": "Pending Payment", "editApply": "Edit Pre-Application", "editExpense": "Edit Expense Report", "statusTransferred": "Transferred", "statusClosed": "Closed", "statusPendingReview": "Pending Review", "statusReviewing": "Under Review", "statusReviewRejected": "Review Rejected", "statusFinalRejected": "Review Rejected(Final)", "filterAll": "All", "all": "All", "myDrafts": "My Drafts", "public": "All Staff", "normal": "Normal", "urgent": "Urgent", "unknown": "Unknown", "other": "Other", "no": "None", "select": "Select", "selectOrFill": "Select or fill in", "pleaseSelect": "Please select", "selectDateTime": "Select date & time", "selectDate": "Select date", "optional": "Optional", "pleaseEnter": "Please enter", "enterNumber": "Please enter a number", "requiredField": "This field is required", "unknownError": "Unknown error", "networkTimeout": "Network connection timeout", "draftSaved": "Draft saved", "draftSavedToast": "Draft saved", "saveFailed": "Save failed", "submitSuccess": "Submitted successfully", "submitFailed": "Submit Failed", "submitFailedRetry": "Submission failed, please try again later", "noCostTypeData": "No cost type data. Please add cost types in ERP first.", "submittedAwaitingApproval": "Submitted, awaiting approval", "published": "Announcement published", "withdrawn": "Withdrawn", "featureDev": "{feature} is under development", "completeFormInfo": "Please complete the form", "unsavedContentWarning": "Current content is not saved. Exit anyway?", "resetWarning": "This will clear all entered content and cannot be undone", "maxChars": "Up to {max} characters", "enterField": "Please enter {field}", "applicant": "Applicant", "department": "Department", "applyDept": "Apply Dept", "expensePersonnel": "Expense Personnel", "expenseDept": "Expense Dept", "dept": "Dept", "date": "Date", "startTime": "Start Time", "endTime": "End Time", "creator": "Creator", "hours": "Hours", "total": "Total", "send": "Send", "search": "Search", "searchByNameOrId": "Search by name or employee ID...", "searchEmployee": "Search Employee", "searchEmployeeHint": "Search by name or employee ID", "approver": "Approver", "rejecter": "Rejected By", "currentApprover": "Current Approver", "approvalFlow": "Approval Flow", "approvalProgress": "Approval Progress", "opinion": "Opinion: ", "currentNode": "Current Node", "waitHandle": "Pending", "approvalComment": "Approval comment (optional)", "submitTimeText": "Submit Time", "submitTime": "Submit Time", "downloadAttachment": "Download Attachment", "noMoreData": "No more data", "expandRemaining": "Expand ${count} more", "collapseRemaining": "Collapse ${count} items", "searchImportHint": "Search No./Reason/Applicant", "businessShort": "Business", "custom": "Custom", "markedAsRead": "Marked as read", "pinTopTag": "Pinned", "pinToTop": "Pin to Top", "filterTitle": "Filters", "filterStartDate": "Start Date", "filterEndDate": "End Date", "filterSelectStartDate": "Select start date", "filterSelectEndDate": "Select end date", "filterDateStartAfterEnd": "Start date cannot be later than end date", "filterDateEndBeforeStart": "End date cannot be earlier than start date", "filterStatus": "Approval Status", "transferStatus": "Transfer Status", "filterPayment": "Payment Status", "filterThisMonth": "This Month", "filterThisQuarter": "This Quarter", "filterThisYear": "This Year", "filterThisWeek": "This Week", "filter7Days": "Last 7 Days", "filter30Days": "Last 30 Days", "filterLastMonth": "Last Month", "filterLast3Months": "Last 3 Months", "filterDateRange": "Date Range", "filterGroupOther": "Other", "applyFilter": "Apply Filter", "clickChartToFilter": "Tap the bar chart to filter", "tdOpen": "On", "tdClose": "Off", "tdCancel": "Cancel", "tdConfirm": "Confirm", "tdOther": "Other", "tdReset": "Reset", "tdLoading": "Loading", "tdLoadingWithPoint": "Loading...", "tdKnew": "Got it", "tdRefreshing": "Refreshing", "tdReleaseRefresh": "Release to refresh", "tdPullToRefresh": "Pull to refresh", "tdCompleteRefresh": "Refresh complete", "tdDays": "Days", "tdHours": "Hours", "tdMinutes": "Minutes", "tdSeconds": "Seconds", "tdMilliseconds": "Milliseconds", "tdYearLabel": "Year", "tdMonthLabel": "Month", "tdDateLabel": "Day", "tdWeeksLabel": "Week", "tdSunday": "Sun", "tdMonday": "Mon", "tdTuesday": "Tue", "tdWednesday": "Wed", "tdThursday": "Thu", "tdFriday": "Fri", "tdSaturday": "Sat", "tdYear": "Year", "tdJanuary": "January", "tdFebruary": "February", "tdMarch": "March", "tdApril": "April", "tdMay": "May", "tdJune": "June", "tdJuly": "July", "tdAugust": "August", "tdSeptember": "September", "tdOctober": "October", "tdNovember": "November", "tdDecember": "December", "tdTime": "Time", "tdStart": "Start", "tdEnd": "End", "tdNotRated": "Not Rated", "tdCascadeLabel": "Select Option", "tdBack": "Back", "tdTop": "Top", "tdEmptyData": "No Data", "basicInfo": "Basic Info", "noDetailData": "No detail data", "unitItem": "items", "personUnit": "persons" }, "home": { "myDashboard": "My Dashboard", "monthlyTotalExpense": "Monthly Total Reimbursement", "monthlySubmitted": "Submitted This Month", "pendingDocuments": "Pending Documents", "preApplication": "Pre-Application", "expenseReimbursement": "Reimbursement", "vehicleApplication": "Vehicle Application", "overtimeApplication": "Overtime Application", "applicationRecords": "Application Records", "expenseRecords": "Reimbursement Records", "outingLogs": "Outing Logs", "companyAnnouncements": "Company Announcements", "myApprovals": "My Approvals", "myApplications": "My Applications", "subordinateRecords": "Subordinate Records", "myExpenses": "My Reimbursements", "outingLog": "Outing Log", "announcements": "Announcements", "deptDashboard": "Dept Dashboard", "financeDashboard": "Finance Dashboard", "deptMonthlyReimbursement": "Dept Monthly Reimbursement", "deptMonthlySubmitted": "Dept Submitted This Month", "deptPendingDocuments": "Dept Pending Documents", "scopeMyApplications": "My Initiated", "scopeSubordinates": "Subordinate Approvals" }, "expenseApply": { "expenseApplyList": "Expense Application List", "expenseApplyDetail": "Expense Application Details", "statusConvertedToExpense": "Converted to Expense", "expenseApplyRequest": "Expense Application", "expenseApplyImport": "Import Approved Applications", "importApprovedPreApp": "Import Approved Applications", "importExpenseApply": "Import Expense Application", "confirmImport": "Confirm Import", "importSuccess": "Import successful", "searchExpenseApply": "Search application no. or applicant", "noExpenseApplications": "No applications", "reportExpenseApply": "Expense Application Report", "reportExpenseApplyDetail": "Expense Application Detail Report", "emergencyLevel": "Urgency", "feeType": "Fee Type", "feeReason": "Fee Reason", "enterFeeReason": "Enter fee reason", "applyReason": "Application Reason", "expenseApplyReason": "Purpose", "enterApplyReason": "Enter application reason", "validUntil": "Valid Until", "selectExpiryDate": "Select expiry date", "relatedContractNo": "Related Contract No.", "referenceNo": "Reference No.", "relatedControl": "Related Control", "availableBudget": "Available Budget", "overBudget": "Over budget {amount}", "overBudgetTriggerApproval": "Your amount exceeds the budget. Submission will trigger the executive approval process.", "expenseDetails": "Expense Details", "addDetail": "Add Expense Detail", "addAtLeastOneDetail": "Please add at least one expense detail", "noDetailHint": "No details, tap above to add", "detailRemark": "Detail Remark", "expenseProject": "Expense Item", "expenseCategory": "Expense Item", "selectExpenseCategory": "Select expense item", "acctSubject": "GL Account", "selectAcctSubject": "Auto-filled from expense category", "costDept": "Cost Department", "selectCostDept": "Select cost department", "estimatedAmount": "Estimated Amount", "enterEstimatedAmount": "Enter estimated amount", "estimatedAmountPositive": "Estimated amount must be greater than 0", "quantity": "Quantity", "quantityPricePositive": "Quantity and price must be greater than 0", "unit": "Unit", "unitPrice": "Unit Price", "selectUnit": "Select unit", "estimatedStartDate": "Estimated Start Date", "estimatedEndDate": "Estimated End Date", "estimatedDate": "Estimated Date", "detailList": "Detail List", "auditTrail": "Audit Trail", "bodyDetailList": "Body Details", "items": "items", "selectEstimatedStartDate": "Please select estimated start date", "selectEstimatedEndDate": "Please select estimated end date", "startDateNotAfterEndDate": "Start date cannot be later than end date", "transportType": "Transport Type", "selectTransport": "Select transport", "isOvernight": "Overnight", "travelExpense": "Travel Expense", "entertainmentExpense": "Entertainment Expense", "entertainmentTargetUnit": "Target Organization", "entertainmentLevel": "Entertainment Level", "selectEntertainmentLevel": "Select entertainment level", "externalCount": "External Attendees", "internalCount": "Internal Attendees", "companionNotExceedGuest": "Internal attendees cannot exceed external guests", "venue": "Venue", "pleaseEnterLocation": "Please enter location", "meetingExpense": "Meeting Expense", "meetingLocation": "Meeting Location", "pleaseEnterMeetingLocation": "Please enter meeting location", "hintTravelFields": "Please fill in travel details (dates, transport, etc.)", "hintEntertainmentFields": "Please fill in entertainment details (target, level, guests, etc.)", "hintMeetingFields": "Please fill in meeting details (dates, venue, etc.)", "filterExpenseTravel": "Travel Expense", "filterExpenseEntertainment": "Entertainment", "filterExpenseOffice": "Office Expense", "filterExpenseMeeting": "Meeting Expense", "filterCritical": "Critical", "costCategoryTransport": "Transport", "costCategoryHotel": "Hotel", "costCategoryOfficeSupplies": "Office Supplies", "costCategoryMeals": "Meals", "costCategoryMaterials": "Materials", "costCategoryService": "Service Fee", "costCategoryOther": "Other", "unitPiece": "Piece", "unitRoom": "Room", "unitPerson": "Person", "unitDay": "Day", "unitSet": "Set", "transportPlane": "Plane", "transportHighSpeedRail": "High-Speed Rail", "transportTrain": "Train", "transportSelfDrive": "Self-Drive", "entertainmentVip": "VIP", "important": "Important", "isTaxIncluded": "Tax Included", "expenseType": "Expense Type", "selectAtLeastOneExpenseType": "Please select at least one expense type", "expenseTypeProcurement": "Daily Procurement", "expenseTypeActivity": "Activity Funds", "expenseTypeTraining": "Training Fee", "mockAttachmentAdded": "Attachment added (mock)", "attachmentUpload": "Attachment Upload", "maxAttachment": "Up to 9 attachments, support image/PDF/Word/Excel (image ≤10MB, doc ≤20MB)", "attachments": "Attachments", "pickImage": "Select Image", "pickFile": "Select File", "fileTooLarge": "File size exceeds limit", "imageSizeLimit": "Image must be ≤${max}MB", "fileSizeLimit": "File must be ≤${max}MB", "fileLimitHint": "At most ${limit} file(s) can be selected", "dateRangeLimit": "Date range cannot exceed 12 months", "selectDateRange": "Please select start and end dates", "endDateBeforeStart": "End date cannot be earlier than start date", "addExpenseDetailFirst": "Please add expense items in the details" }, "expense": { "expenseList": "Expense List", "expenseDetail": "Expense Details", "editExpense": "Edit Expense", "expenseApply": "Reimbursement", "searchExpense": "Search expense No. or applicant", "noExpenses": "No expense reports", "reportExpense": "Expense Report", "reportExpenseDetail": "Expense Detail Report", "expenseDate": "Expense Date", "expenseNo": "Expense No.", "autoGenerated": "Auto-generated", "currency": "Currency", "selectCurrency": "Select currency", "paymentMethod": "Payment Method", "bankTransfer": "Bank Transfer", "cash": "Cash", "alipay": "Alipay", "wechat": "WeChat Pay", "bankAccountName": "Account Name", "selectPaymentMethod": "Select payment method", "voucherNo": "Voucher No.", "enterVoucherNo": "Enter voucher no.", "remark": "Remark", "enterRemark": "Enter remark", "generateVoucher": "Generate Voucher", "receiptAccount": "Receipt Account", "bankName": "Bank Name", "accountName": "Account Name", "bankAccount": "Bank Account", "selectBank": "Please select bank", "enterBankAccount": "Enter bank account", "bankSelection": "Bank selection is under development", "bankAccountInput": "Bank account input is under development", "expenseAmount": "Expense Amount", "totalExpense": "Total Expense", "approvedTotal": "Approved Total", "amount": "Amount", "enterAmount": "Enter amount", "enterValidAmount": "Enter a valid amount", "amountMustPositive": "Amount must be greater than 0", "amountExcludingTax": "Excl. Tax Amount", "amountInclTax": "Incl. Tax Amount", "amountPositive": "Amount must be greater than 0", "taxAmount": "Tax Amount", "taxRate": "Tax Rate", "exchangeRate": "Exchange Rate", "approvedAmount": "Approved Amount", "expenseName": "Expense Name", "enterExpenseName": "Enter expense item name", "description": "Description", "addExpenseDetail": "Add Expense Detail", "invoiceUpload": "Invoice Upload", "maxInvoices": "Up to 9 invoices", "invoiceAttachment": "Invoice Attachment", "noInvoice": "No invoice attachments", "invoiceCheck": "Invoice Compliance Check", "invoiceCheck1": "Invoice info matches the expense", "invoiceCheck2": "Invoice amount matches the expense amount", "invoiceCheck3": "Invoice date is within validity", "invoiceCheck4": "Invoice title is the full company name", "project": "Project", "relatedProject": "Related Project", "budgetSubject": "Budget Account", "costCenter": "Cost Center", "selectProject": "Select related project", "selectProjectAndSubject": "Select project and budget account", "selectSubject": "Please select account", "selectCostCenter": "Please select cost center", "projectSelection": "Project selection is under development", "budgetSubjectSelection": "Budget account is under development", "costCenterSelection": "Cost center is under development", "projectCode": "Project Code", "subjectCode": "Account Code", "projectCategory": "Project Category", "expenseReason": "Expense Reason", "enterExpenseReason": "Enter expense reason", "customerVendor": "Customer/Vendor", "offsetAmount": "Offset Amount", "financialArchive": "Financial Archive", "archiveDate": "Archive Date", "archiver": "Archiver", "financeDept": "Finance Dept", "isInvoiceVerified": "Invoice Verified", "isTaxIdMatched": "Tax ID Matched", "isCategoryCompliant": "Category Compliant", "paymentStatus": "Payment Status", "confirmPaymentAndArchive": "Confirm Payment & Archive", "confirmPaymentAndArchiveTip": "Confirm to pay and archive this expense? This cannot be undone.", "nextPendingPayment": "Next Pending Payment", "allPaymentsProcessed": "All pending payments have been processed", "paymentArchiveSuccess": "Payment and archive completed" }, "overtime": { "overtimeList": "Overtime Records", "overtimeDetail": "Overtime Details", "overtimeApply": "Overtime Application", "overtimeRecords": "Overtime Records", "searchOvertime": "Search overtime no. or applicant", "noOvertimes": "No overtime records", "reportOvertime": "Overtime Report", "reportOvertimeDetail": "Overtime Detail Report", "overtimeInfo": "Overtime Info", "overtimeType": "Overtime Type", "overtimeReason": "Overtime Reason", "compensationMethod": "Compensation Method", "netOvertimeHours": "Net Overtime Hours", "enterOvertimeReason": "Please describe the overtime reason in detail", "workdayOvertime": "Workday Overtime", "weekendOvertime": "Weekend Overtime", "holidayOvertime": "Holiday Overtime", "overtimePay": "Overtime Pay", "compLeave": "Comp Leave", "selectOvertimeType": "Select overtime type", "selectCompensationMethod": "Select compensation method", "compensationOvertimePay": "Overtime Pay", "compensationCompLeave": "Comp Leave", "compensationMixed": "Mixed", "workday": "Workday", "weekend": "Weekend", "holiday": "Holiday" }, "vehicle": { "vehicleList": "Vehicle Records", "vehicleApply": "Vehicle Application", "vehicleDetail": "Vehicle Details", "vehicleRecords": "Vehicle Records", "searchVehicle": "Search vehicle no. or applicant", "noVehicles": "No vehicle records", "reportVehicle": "Vehicle Report", "reportVehicleDetail": "Vehicle Detail Report", "vehicleInfo": "Vehicle Info", "vehicleReason": "Vehicle Reason", "vehiclePurpose": "Vehicle Purpose", "selectVehicle": "Select vehicle", "selectPlate": "Please select license plate", "noVehicle": "No vehicle specified", "enterVehicleReason": "Enter vehicle reason", "selectVehicleReason": "Select vehicle reason", "departureLocation": "Departure Location", "destination": "Destination", "enterDestination": "Enter destination", "passengerCount": "Passenger Count", "companion": "Companion", "selectCompanion": "Select companion", "estimatedTime": "Estimated Time", "estimatedMileage": "Estimated Mileage", "tripPreview": "Trip Preview", "tripRoute": "Trip Route", "mapPreview": "Map Route Preview", "snMapPickerComingSoon": "Map picker coming soon", "mapPickerComingSoon": "Map picker coming soon", "gpsLocating": "Locating via GPS…", "gpsLocatingWait": "Locating via GPS, please wait", "gpsFailed": "Unable to get current location", "gpsFailedHint": "Please check location permission settings", "gpsSuccess": "GPS located successfully", "gpsPermission": "Unable to get GPS location, please check location permission", "origin": "Origin", "sedan": "Sedan", "suv": "SUV", "businessVan": "Business Van", "customerReception": "Customer Reception", "businessTrip": "Business Trip", "internalAffairs": "Internal Affairs", "official": "Official", "returnCarRegister": "Return Registration", "confirmReturnCar": "Confirm Return", "confirmReturn": "Confirm return and register", "reEdit": "Re-edit", "returnCarArchived": "Return archived", "returnCarArchivedAt": "Return archived at {time}", "mileageBefore": "Mileage before (km)", "mileageAfter": "Mileage after (km)", "actualCost": "Actual cost (CNY)", "costRemarkLabel": "Cost remark (tolls/parking, etc.)", "returnCarSubmitted": "Return registration submitted", "returnTimeMustLater": "Return time must be later than departure time", "departTime": "Departure Time", "returnTime": "Return Time", "arriveTime": "Return Time", "earlyReturn": "Note: early return", "overReturnTime": "Warning: exceeded planned return time", "actualReturnTime": "Actual Return Time", "selectReturnTime": "Select actual return time", "navigation": "Navigation", "navigationComingSoon": "Navigation coming soon", "tapToViewNavigation": "Tap to view navigation", "mockOpenNavigation": "Mock: open native navigation", "submitConfirmContent": "Mileage and cost cannot be changed after submission. Continue?", "licensePlate": "License Plate", "selectLicensePlate": "Select license plate", "filterVehicle": "Vehicle Filter", "filterUsage": "Usage Filter", "filterReception": "Reception", "vehicleOccupied": "This vehicle is occupied during this period", "vehicleOccupiedPeriod": "The vehicle is booked for this period. Please choose another vehicle or adjust the time.", "mileageInvalid": "Return mileage cannot be less than departure mileage", "business": "Official" }, "outingLog": { "outingLogList": "Outing Logs", "outingLogCreate": "New Outing Log", "outingLogDetail": "Outing Log Details", "searchOutingLog": "Search customer name or salesperson", "noOutingLogs": "No outing logs", "reportOutingLog": "Outing Log Report", "reportOutingLogDetail": "Outing Log Detail Report", "outingDetail": "Outing Details", "outingType": "Outing Type", "outingReason": "Outing Reason", "outingLocation": "Outing Location", "enterLocation": "Enter outing location", "enterOutingReason": "Enter outing reason and work details...", "workSummary": "Work Summary", "followUp": "Follow-up Plan", "workSummaryRequiredHint": "Please fill in the work summary (required)", "followUpOptional": "Follow-up plan (optional)", "sitePhotos": "Site Photos", "takePhoto": "Take Photo", "maxPhotoCount": "Up to 9 photos", "limitReached": "Limit reached", "tapToTakePhoto": "Tap to take photo (min 1)", "noPhotos": "No photos", "noComments": "No comments", "noPlan": " · No plan", "noWorkSummary": "No work summary", "customerVisit": "Customer Visit", "outingAffairs": "Outing Affairs", "selectOutingType": "Select outing type", "salesperson": "Salesperson", "salespersonLabel": "Sales: {name} · {dept}", "customerName": "Customer Name", "customerInfo": "Customer Info", "selectContact": "Select Contact", "selectContactHint": "Tap to select contact (optional)", "noContact": "No contacts for this customer", "searchCustomer": "Search customer name", "selectCustomerFirst": "Please select a customer first", "checkInAddress": "Check-in Address", "checkInTime": "Check-in Time", "watermarkHint": "Photos auto-add watermark: server time + GPS", "watermarkHintDynamic": "Auto watermark: server time + GPS ({lat}°N, {lng}°E)", "mockPhotoTaken": "Mock photo: Photo #{idx} taken (watermark: {time} | {lat}, {lng})", "outingLogSubmitted": "Outing log submitted", "newComment": "New Comment", "comments": "Comments", "managerComment": "Manager Comment", "selectRating": "Please select rating", "enterComment": "Please enter comment", "commentSent": "Comment sent", "requiredSummary": "Please fill in work summary", "requiredPhotos": "Take at least 1 photo", "inputComment": "Enter comment…" }, "announcement": { "announcementList": "Announcement List", "announcementDetail": "Announcement Details", "announcementCreate": "Publish Announcement", "searchAnnouncement": "Search announcement title", "noAnnouncements": "No announcements", "announcementContent": "Announcement Content", "enterContent": "Enter announcement content...", "announcementType": "Announcement Type", "selectAnnouncementType": "Select announcement type", "publishSettings": "Publish Settings", "pinAnnouncement": "Pin Announcement", "recipientScope": "Recipient Scope", "selectRecipientScope": "Select recipient scope", "addAttachment": "Add Attachment", "attachmentPicker": "Mock: select attachment (PDF/image/Word/Excel, ≤20MB)", "attachmentLimit": "Up to 5 attachments, support PDF/image/Word/Excel, ≤20MB each", "announcementPublished": "Announcement published", "confirmPublishTitle": "Confirm Publish", "confirmPublishContent": "Confirm to publish {title}?", "expiryNever": "Never expires (optional)", "allStaff": "All Staff", "byDept": "By Department", "byDeptHint": "Multi-select by department tree", "byUser": "By Specific Users", "byUserHint": "Multi-select by employee search", "selectDept": "Select Department", "coverageCount": "Coverage Count", "scopeAllStaff": "Visible to all staff", "dingReminder": "One-tap DING reminder", "dingPromptSent": "Reminder sent to {count} unread staff", "readCount": "{count} read", "unreadCount": "{count} unread", "typeAndPublishDate": "{type} · shown after publishing", "titleNotFilled": "(No title)", "contentNotFilled": "(No content)", "announcementExpired": "This announcement expired on {date}", "selectedCount": "{count} selected", "auditTracking": "Reach rate audit tracking", "mockExpandReadList": "Mock: expand read staff list", "mockExpandUnreadList": "Mock: expand unread staff list", "announcementTypes": "Select announcement type", "previewTitle": "Preview", "enterTitle": "Enter announcement title (required)", "hrPolicy": "HR & Policy", "holidayActivity": "Holiday & Activity", "filterNotice": "Notice", "filterHr": "HR & Policy", "filterHoliday": "Holiday & Activity", "noticeAnnouncement": "Notice", "pinnedToast": "Pinned: ", "deletedToast": "Deleted: ", "markReadToast": "Marked as read: ", "markUnreadToast": "Marked as unread: ", "pinTopTag": "Pinned", "markRead": "Read", "markUnread": "Unread", "markAllRead": "Mark All Read", "published": "Announcement published", "publishAnnouncement": "Publish Announcement" }, "report": { "reports": "Reports", "chartTitle1": "Expense & Approved Amount Trend", "chartTitle2": "Overtime Hours Trend (Last 12 Months)", "chartTitle3": "Vehicle Trips vs Total Cost (Last 12 Months)", "chartTitle4": "Monthly Trend", "chartTitle5": "Visits vs Avg Rating (Last 12 Months)", "chartTitle6": "Apply Amount Trend", "chartTitle8": "Personnel Expense Comparison", "chartDesc1": "Dual line comparison chart", "chartDesc2": "Bar trend chart", "chartDesc3": "Dual-axis line chart", "chartDesc4": "Dual line comparison chart", "chartDesc5": "Dual-axis line chart", "chartDeptExpenseCompare": "Dept Reimbursement vs Approved Amount", "chartDeptApplyCompare": "Dept Applied vs Approved Amount", "chartDeptOvertimeCompare": "Dept Total Overtime Hours", "chartDeptVehicleCompare": "Dept Vehicle Trips vs Cost", "chartDeptOutingCompare": "Dept Visits vs Avg Rating", "statTotalApproved": "Total Reimbursed", "statMonthCount": "This Month Count", "statTotalCount": "Total Bills", "statPendingApprove": "Pending Approval", "statPendingPayment": "Pending Payment", "statTotalApply": "Total Applied", "statApprovedCount": "Approved Count", "statApprovedAmount": "Approved Amount", "statTransferredCount": "Transferred", "statTransferredAmount": "Transferred Amount", "statMonthHours": "This Month Net Hours", "statMonthTrips": "This Month Trips", "statTotalMileage": "Total Mileage", "statTotalCost": "Tolls & Parking", "statNotReturned": "Not Returned", "statMonthVisits": "This Month Visits", "statVisitedCustomers": "Customers Visited", "statAvgRating": "Avg Rating", "statNotReviewed": "Unreviewed Logs", "yearApproved": "Reimbursed This Year", "monthCount": "This Month Count", "waitApprove": "Pending Approval", "waitPayment": "Pending Payment", "monthNetHours": "This Month Net Hours", "overtimeCount": "Overtime Count", "compHours": "Comp Leave Hours", "settleCount": "Settlement Count", "monthVehicle": "This Month Vehicle", "totalMileage": "Total Mileage", "totalCost": "Total Cost", "notReturned": "Not Returned", "yearTotalApp": "Total Amount", "approvedCount": "Approved Count", "approvedAmount": "Approved Amount", "transferredAmount": "Transferred Amount", "monthVisits": "This Month Visits", "visitCustomers": "Customers Visited", "avgRating": "Avg Rating", "notReviewed": "Unreviewed", "paidTotal": "Total Paid", "pendingPaymentTotal": "Total Pending Payment", "abnormalReturns": "Abnormal Returns", "statExpenseTotal": "Total Expense", "statExpenseTotalCount": "Total Bills", "statTransferredToPmt": "Transferred to Pmt", "statTransferredToPmtAmount": "Transferred Amount", "approvedAmountLabel": "Approved Amount", "exportPlaceholder": "Export (placeholder)" }, "messages": { "tabMessages": "Messages", "messageNotifications": "Message Notifications", "systemNotice": "System Notice", "approvalNotice": "Approval Notice", "systemMessage": "System Message", "minutesAgo": " min ago", "hoursAgo": " hr ago", "daysAgo": " days ago", "withdrawNotice": "Withdrawal Notice", "expiryReminder": "Expiry Reminder", "pendingApproval": "Pending Approval" }, "admin": { "permissionManagement": "Permission Management", "permissionEdit": "Permission Edit", "quickPresets": "Quick Presets", "permissionItems": "Permission Items", "changeLog": "Change Log", "recentItems": "Recent {count} items", "confirmSave": "Confirm Save", "financeStaff": "Finance Staff", "systemAdmin": "System Admin", "regularEmployee": "Regular Employee", "employeeId": "Employee ID: ", "itDept": "IT Department", "adminDept": "Admin Department", "marketDept": "Marketing Department", "techDept": "Tech Department", "expenseApplyNo": "Application No.", "applyDate": "Apply Date", "critical": "Critical", "unused": "Unused", "partiallyUsed": "Partially Used", "fullyUsed": "Fully Used", "usageStatus": "Usage Status", "bankTransferNo": "Bank Transfer No.", "approvalStepSubmitted": "Submitted", "approvalStepApproved": "Approved", "approvalStepFinanceReview": "Finance Review", "approvalStepInvoice": "Invoice Verification", "approvalStepPayment": "Payment & Archive", "approvalStepArchive": "Archive", "approvalStepArchiveDesc": "Auto-archived after approval completes", "approvalStepPaymentDesc": "Pending all 3 verifications", "approvalDescSubmitted": "Zhang San", "approvalDescApproved": "Li Si — Approved", "approvalDescFinanceReview": "Wang — Finance Dept.", "approvalDescInvoice": "Wang — Finance Dept.", "draftFound": "Draft Found", "draftRestorePrompt": "An unfinished form was found. Restore it?", "discard": "Discard", "restore": "Restore", "noAttachment": "No attachments", "attachServiceUnavailable": "Attachment service unavailable", "noAttachmentPermission": "No attachment permission. Please contact admin to configure in ERP Special Password Settings", "downloadFailed": "Download failed", "downloadSuccess": "Saved to device", "openFailed": "Open failed", "downloading": "Downloading…", "headerAttachments": "Header Attachments", "detailLine": "Detail Line" } }