export default { common: { submit: 'Submit', close: 'Close', exit: 'Exit', notice: 'Notice', moduleBuilding: 'This module is under construction', updateSuccess: 'Updated successfully', confirmLogout: 'Are you sure you want to log out?', languageSwitched: 'Language switched', more: 'More', reset: 'Reset', complete: 'Done', edit: 'Edit', saveFailed: 'Save failed' }, tab: { home: 'Home', report: 'Reports', work: 'Manage', mine: 'Mine' }, work:{ mold: '模具', equipmentMaintenance: 'Equipment Maintenance', keypart: '关键件', spare: '备件', }, nav: { home: 'Home', mine: 'Profile', avatar: 'Edit Avatar', info: 'Profile', editInfo: 'Edit Profile', pwd: 'Change Password', setting: 'App Settings', help: 'FAQ', about: 'About' }, dashboard: { welcome: 'Welcome to', subtitle: 'Besure Digital Intelligent Control Platform', functionNav: 'Function Navigation', editNavMenu: 'Edit Shortcuts', configuredNav: 'Added', unconfiguredNav: 'Add More', dragHint: 'Drag icons to reorder, icons above will be displayed in control center', clickHint: 'Tap icons to add or remove from configuration', allNavMenu: 'All Functions', productionOverview: 'Production Overview', qualityOverview: 'Quality Overview', productionPlan: 'Production Summary', production: 'Production', quality: 'Quality', totalCount: 'Total', passCount: 'Pass Count', failCount: 'Fail Count', qualityTrend: 'Quality Trend', chartPlaceholder: 'Chart loading...', totalWangongNumber: 'Total Reported', totalPassNumber: 'Total Passed', totalNoPassNumber: 'Total Failed', totalPassRate: 'Total Pass Rate', productPassRateRanking: 'Product Pass Rate Ranking', passNumber: 'Pass Count', noPassNumber: 'Fail Count', periodLastWeek: 'Last Week', periodThisWeek: 'This Week', periodLast7Days: 'Last 7 Days', periodLastMonth: 'Last Month', periodThisMonth: 'This Month', periodLastYear: 'Last Year', collapseList: 'Collapse', viewMore: 'View More ›', productName: 'Product', pipeline: 'Production Line', planNumber: 'Planned Qty', planStart: 'Start', planEnd: 'End', back: 'Back', todoTitle: 'To-do Tasks', noTodo: 'No pending tasks', taskCode: 'Task Code: {value}', taskType: 'Task Type: {value}', taskTarget: 'Target: {value}', createTime: 'Created At: {value}', all: 'Total', pending: 'Pending', running: 'In Progress', finished: 'Done', mold: 'Mold', equipment: 'Equipment', keypart: 'Key Part', spare: 'Spare Part', product: 'Product Material', statusScheduled: 'Scheduled', statusTrial: 'Trial', statusMass: 'Mass', statusPause: 'Paused', statusWaitStockIn: 'Waiting Stock-in', viewPlan: 'View Plan: {code}', filterTask: 'Task', filterProduct: 'Product', dateRange: 'Date Range', startDate: 'Start Time', endDate: 'End Time', baogongNum: 'Reported', passNum: 'Qualified', noPassNum: 'Unqualified', passRate: 'Pass Rate', trendChart: 'Trend', taskPlaceholder: 'Task mode under development', totalTask: 'Total Tasks', issuedNum: 'Issued', partialScheduledNum: 'Partial Scheduled', waitingProduction: 'Waiting', producing: 'Producing', completed: 'Completed', taskTrend: 'Task Trend', rangeYear: 'Last Year', rangeMonth: 'This Month', rangeWeek: 'This Week', rangeToday: 'Today', rangeCustom: 'Custom', monday: 'Mon', tuesday: 'Tue', wednesday: 'Wed', thursday: 'Thu', friday: 'Fri', saturday: 'Sat', sunday: 'Sun' }, deviceOverview: { title: 'Device Overview', totalDevices: 'Total', runningCount: 'Running', standbyCount: 'Standby', faultCount: 'Fault', offlineCount: 'Offline', utilizationRate: 'Utilization', bootRate: 'Boot Rate', faultRate: 'Fault Rate', rateTrend: 'Utilization / Boot Rate Trend', onlyScheduled: 'Scheduled Only', skipHoliday: 'Skip Holidays', periodLastWeek: 'Last Week', periodThisWeek: 'This Week', periodLast7Days: 'Last 7 Days', periodLastMonth: 'Last Month', periodThisMonth: 'This Month', periodLastYear: 'Last Year', utilizationRanking: 'Last 7 Days Utilization Ranking', utilizationRateTrend: 'Utilization Rate', deviceRateTrend: 'Single Device 7-Day Utilization/Boot Rate Trend', selectDevice: 'Select Device', selectDeviceHint: 'Please select a device to view trend' }, taskList: { filter: 'Filter', code: 'Task Code', status: 'Status', taskType: 'Task Type', orderDate: 'Order Date', deliveryDate: 'Delivery Date', remark: 'Remark', createTime: 'Create Time', totalNumber: 'Total', planNumber: 'Planned', unPlanNumber: 'Unplanned', storedPlanNumber: 'Stored', urgent: 'Urgent', noData: 'No task data', viewTask: 'View Task: {code}' }, planList: { taskCode: 'Task Code', planCode: 'Plan Code', employeeName: 'Reporter', baogongNum: 'Reported', passNum: 'Passed', noPassNum: 'Failed', passRate: 'Pass Rate', baogongTime: 'Report Time', reason: 'Reason', noData: 'No report data', viewDetail: 'View Detail: {code}' }, functionCommon: { search: 'Search', reset: 'Reset', cancel: 'Cancel', confirm: 'Confirm', save: 'Save', loading: 'Loading...', loadingMore: 'Loading more...', noMoreData: 'No more data', noIdView: 'Missing ID, cannot view details', noIdEdit: 'Missing ID, cannot edit', noIdDelete: 'Missing ID, cannot delete', loadFailed: 'Load failed', deleteSuccess: 'Deleted successfully', deleteFailed: 'Delete failed', saveSuccess: 'Saved successfully', saveFailed: 'Save failed', createSuccess: 'Created successfully', updateSuccess: 'Updated successfully', confirmDelete: 'Confirm deletion', uploading: 'Uploading', uploadImageFailed: 'Image upload failed', yes: 'Yes', no: 'No', all: 'All', noMore: 'No more data', confirmTitle: 'Confirm', clear: 'Clear' }, moldGet: { moduleName: 'Mold Stock-out', subTitle: 'Filter quickly by no and status', detailTitle: 'Mold Stock-out Detail', basicInfo: 'Basic Info', outNo: 'Stock-out No', outType: 'Stock-out Type', outTime: 'Stock-out Time', outTimeSingle: 'Stock-out Date', outTimePlaceholder: 'Select stock-out date', warehouse: 'Warehouse', allWarehouse: 'All Warehouses', warehousePlaceholder: 'Select warehouse', creator: 'Creator', status: 'Status', allStatus: 'All Status', remark: 'Remark', itemRemark: 'Item Remark', attachment: 'Attachment', fileUrlPlaceholder: 'Enter attachment URL', remarkPlaceholder: 'Enter remark', moldName: 'Mold', moldCode: 'Mold Code', moldStatus: 'Mold Status', moldUseTime: 'Use Time', machineName: 'Machine', isEnable: 'Enabled', createTime: 'Created At', searchNo: 'Enter stock-out no', searchMold: 'Enter mold code or name', searchCode: 'Enter mold code', searchName: 'Enter mold name', itemListTitle: 'Item List', selectMold: 'Select Mold', noItems: 'No items', count: 'Count', noAuto: 'Generated automatically', createTitle: 'Create Mold Stock-out', editTitle: 'Edit Mold Stock-out', edit: 'Edit', delete: 'Delete', approve: 'Approve', empty: 'No mold stock-out data', noMoldData: 'No mold options', loadEditFailed: 'Failed to load edit data', validatorOutTimeRequired: 'Stock-out date is required', validatorWarehouseRequired: 'Warehouse is required', validatorItemRequired: 'Select at least one mold', validatorCountRequired: 'Count must be greater than 0', confirmDelete: 'Delete stock-out {no}?', confirmApprove: 'Approve stock-out {no}?', approveSuccess: 'Approved successfully' }, moldReturn: { moduleName: 'Mold Stock-in', subTitle: 'Filter quickly by no and status', detailTitle: 'Mold Stock-in Detail', basicInfo: 'Basic Info', inNo: 'Stock-in No', inType: 'Stock-in Type', inTime: 'Stock-in Time', inTimeSingle: 'Stock-in Date', inTimePlaceholder: 'Select stock-in date', warehouse: 'Warehouse', allWarehouse: 'All Warehouses', warehousePlaceholder: 'Select warehouse', creator: 'Creator', status: 'Status', allStatus: 'All Status', remark: 'Remark', itemRemark: 'Item Remark', attachment: 'Attachment', fileUrlPlaceholder: 'Enter attachment URL', remarkPlaceholder: 'Enter remark', moldName: 'Mold', moldCode: 'Mold Code', moldStatus: 'Mold Status', moldUseTime: 'Use Time', searchNo: 'Enter stock-in no', searchCode: 'Enter mold code', searchName: 'Enter mold name', itemListTitle: 'Item List', selectMold: 'Select Mold', noItems: 'No items', count: 'Count', noAuto: 'Generated automatically', createTitle: 'Create Mold Stock-in', editTitle: 'Edit Mold Stock-in', approve: 'Approve', empty: 'No mold stock-in data', noMoldData: 'No mold options', loadEditFailed: 'Failed to load edit data', validatorInTimeRequired: 'Stock-in date is required', validatorWarehouseRequired: 'Warehouse is required', validatorItemRequired: 'Select at least one mold', validatorCountRequired: 'Count must be greater than 0', confirmDelete: 'Delete stock-in {no}?', confirmApprove: 'Approve stock-in {no}?', approveSuccess: 'Approved successfully' }, moldOperate: { moduleName: 'Mold Operate', subTitle: 'Mold mounting and dismounting records', detailTitle: 'Mold Operate Detail', basicInfo: 'Basic Info', tabUp: 'Mount', tabDown: 'Dismount', operateType: 'Operation Type', mold: 'Mold', lowerMold: 'Dismount Mold', selectMold: 'Select Mold', noSelectedMold: 'No selected molds', allMold: 'All Molds', searchRemark: 'Enter remark keyword', searchCode: 'Enter mold code', searchName: 'Enter mold name', moldCode: 'Mold Code', moldName: 'Mold Name', device: 'Device', deviceName: 'Device Name', creatorName: 'Creator', remark: 'Remark', createTime: 'Created At', createTitle: 'Create Mold Operate', editTitle: 'Edit Mold Operate', empty: 'No mold operate data', noMoldData: 'No mold options', placeholderDevice: 'Select device', placeholderRemark: 'Enter remark', validatorOperateTypeRequired: 'Operation type is required', validatorDeviceRequired: 'Device is required', validatorMoldRequired: 'Select at least one mold for mounting', validatorOperatorRequired: 'Please select operator', validatorLowerMoldRequired: 'Select at least one mold for dismounting', loadEditFailed: 'Failed to load edit data', confirmDelete: 'Confirm delete this mold operate record?', scanDevice: 'Scan Device', selectDevice: 'Select Device', selectedDevice: 'Selected Device', deviceCode: 'Device Code', productionLine: 'Production Line', currentMold: 'Current Mold', deviceStatus: 'Device Status', statusRunning: 'Running', statusStop: 'Stopped', statusFault: 'Fault', selectMountMold: 'Select Mold to Mount', product: 'Product', status: 'Status', pendingMount: 'Pending Mount', confirmMount: 'Confirm Mount', clickSelectMold: 'Click to select mold', noDeviceData: 'No device data', deviceNotFound: 'Device not found', deviceInfo: 'Device Info', currentMoldInfo: 'Current Mold on Machine', mountTime: 'Mount Time', useCount: 'Usage Count', countUnit: '', changeMountTarget: 'Change Mount Target', changeTarget: 'Change Dismount Target', confirmDismount: 'Confirm Dismount', clickSelectDeviceFirst: 'Please select a device first', noMoldOnDevice: 'No mold on this device', historySuffix: ' History', historyTitle: 'Mold Operate History', searchPlaceholder: 'Search device/mold name', placeholderOperator: 'Select operator', filterAll: 'All', filterToday: 'Today', filterWeek: 'This Week', historyEmpty: 'No history records', totalPrefix: 'Total: ', totalSuffix: '', confirmDeleteHistory: 'Confirm delete this history record?', operateTime: 'Operate Time', operator: 'Operator' }, moldInspectionItems: { moduleName: 'Inspection Items', subTitle: 'Mold management inspection items', detailTitle: 'Inspection Item Detail', basicInfo: 'Basic Info', code: 'Item Code', name: 'Item Name', inspectionMethod: 'Inspection Method', valueType: 'Value Type', isEnable: 'Enabled', judgmentCriteria: 'Judgment Criteria', creatorName: 'Creator', createTime: 'Created At', searchPlaceholder: 'Enter code/name/criteria', createTitle: 'Create Inspection Item', editTitle: 'Edit Inspection Item', empty: 'No inspection items', loadEditFailed: 'Failed to load edit data', confirmDelete: 'Confirm delete this inspection item?', placeholderCode: 'Enter item code', placeholderName: 'Enter item name', placeholderInspectionMethod: 'Select inspection method', placeholderValueType: 'Select value type', placeholderIsEnable: 'Select enabled status', placeholderJudgmentCriteria: 'Enter judgment criteria', validatorSubjectCodeRequired: 'Item code is required', validatorSubjectNameRequired: 'Item name is required', validatorInspectionMethodRequired: 'Inspection method is required', validatorValueTypeRequired: 'Value type is required', validatorIsEnableRequired: 'Enabled status is required', validatorJudgmentCriteriaRequired: 'Judgment criteria is required' }, moldInspectionPlan: { moduleName: 'Inspection Plan', subTitle: 'Mold management inspection plan', detailTitle: 'Inspection Plan Detail', basicInfo: 'Basic Info', planName: 'Plan Name', planType: 'Plan Type', planTypeMaintain: 'Maintenance', planTypeInspect: 'Inspection', description: 'Description', subjectName: 'Inspection Items', creatorName: 'Creator', createTime: 'Created At', updateTime: 'Updated At', searchPlaceholder: 'Enter plan name', createTitle: 'Create Inspection Plan', editTitle: 'Edit Inspection Plan', empty: 'No inspection plan data', loadEditFailed: 'Failed to load edit data', confirmDelete: 'Confirm delete this inspection plan?', placeholderPlanName: 'Enter plan name', placeholderPlanType: 'Select plan type', placeholderDescription: 'Enter description', placeholderSubjectSelect: 'Select inspection items', subjectSelectTitle: 'Select Inspection Items', noSubjectData: 'No inspection items', validatorPlanNameRequired: 'Plan name is required', validatorPlanTypeRequired: 'Plan type is required', subjectListTitle: 'Related Inspection Items', subjectCode: 'Item Code', inspectionMethod: 'Inspection Method', judgmentCriteria: 'Judgment Criteria' }, moldTaskConfig: { moduleName: 'Inspection Task', subTitle: 'Mold management inspection task', detailTitle: 'Inspection Task Detail', basicInfo: 'Basic Info', name: 'Task Name', taskType: 'Task Type', taskTypeInspect: 'Inspection', taskTypeMaintain: 'Maintenance', moldList: 'Mold List', projectForm: 'Inspection Plan', projectFormName: 'Project Form', dateRange: 'Valid Date Range', startDate: 'Start Date', endDate: 'End Date', cronExpression: 'Cron Expression', operableUsers: 'Operable Users', enabled: 'Enabled', creatorName: 'Creator', createTime: 'Created At', updateTime: 'Updated At', searchPlaceholder: 'Enter task name', createTitle: 'Create Inspection Task', editTitle: 'Edit Inspection Task', empty: 'No inspection task data', loadEditFailed: 'Failed to load edit data', confirmDeleteContent: 'Confirm delete this inspection task [{name}]?', placeholderName: 'Enter task name', placeholderTaskType: 'Select task type', placeholderMoldList: 'Select molds', placeholderProjectForm: 'Select inspection plans', placeholderStartDate: 'Select start date', placeholderEndDate: 'Select end date', placeholderCron: 'Enter cron expression', placeholderOperableUsers: 'Select operable users', validatorNameRequired: 'Task name is required', validatorTaskTypeRequired: 'Task type is required', validatorMoldListRequired: 'Mold list is required', validatorProjectFormRequired: 'Inspection plan is required', validatorDateRangeRequired: 'Date range is required', createTicketSuccess: 'Work order created successfully', createTicketFail: 'Work order creation failed', moldSelectTitle: 'Select Molds', planSelectTitle: 'Select Inspection Plans', userSelectTitle: 'Select Operable Users' }, equipmentInspectionTasks: { moduleName: 'Equipment Inspection Tasks', subTitle: 'Work order management for equipment inspection tasks', detailTitle: 'Equipment Inspection Task Detail', basicInfo: 'Basic Info', createTicket: 'Add Work Order Management', name: 'Task Name', taskType: 'Task Type', taskTypeInspect: 'Inspection', taskTypeMaintain: 'Maintenance', deviceList: 'Device List', projectFormName: 'Project Form', dateRange: 'Valid Date Range', cronExpression: 'Cron Expression', operableUsers: 'Operable Users', enabled: 'Enabled', creatorName: 'Creator', createTime: 'Created At', updateTime: 'Updated At', searchPlaceholder: 'Enter task name/device code/device name', empty: 'No equipment inspection tasks', createTicketSuccess: 'Work order created successfully', createTicketFail: 'Work order creation failed', lineFilter: 'Line', moreFilter: 'More Filters', filterScope: 'Filter Scope', placeholderProjectForm: 'Select inspection template', placeholderDeviceList: 'Select equipment', selectedCount: '{count} selected', noPlanData: 'No inspection templates', noDeviceData: 'No equipment data', confirmCreateTicketContent: 'Create a work order from \"{name}\"?', subjectListTitle: 'Template Items', noSubjectData: 'No template items', subjectCode: 'Item Code', subjectName: 'Item Name', inspectionMethod: 'Inspection Method', judgmentCriteria: 'Criteria', }, equipmentInspectionRecord: { moduleName: 'Equipment Inspection Records', subTitle: 'Equipment inspection record list', detailTitle: 'Equipment Inspection Record Detail', taskType: 'Task Type', taskTypeInspect: 'Inspection', taskTypeMaintain: 'Maintenance', taskTypeInspectShort: 'I', taskTypeMaintainShort: 'M', planNo: 'Task No.', deviceName: 'Device Name', configName: 'Inspection Template', jobStatus: 'Job Status', jobStatusPending: 'Pending', jobStatusProcessing: 'Processing', jobStatusCompleted: 'Completed', jobStatusTimeout: 'Timeout', jobStatusCancelled: 'Cancelled', jobResult: 'Result', jobResultOk: 'Pass', jobResultNg: 'Fail', taskTime: 'Job Time', searchPlaceholder: 'Enter task no/device code/device name', empty: 'No equipment inspection records', progressTitle: 'Progress', inspectionMethod: 'Inspection Method', judgmentCriteria: 'Criteria', valueType: 'Value Type', resultText: 'Result', requiredText: 'Required', inspectionResultPending: 'Pending', inspectionResultPass: 'Pass', inspectionResultFail: 'Fail', textInput: 'Input Value', inputPlaceholder: 'Please enter', remark: 'Remark', images: 'Images', maxUploadCount: 'You can upload up to 9 images', selectAllDecisionError: 'Please choose a result for all pending items', noResultData: 'No inspection items', lineFilter: 'Line', }, moldWorkOrder: { moduleName: 'Inspection Records', subTitle: 'Mold management inspection records', detailTitle: 'Inspection Record Detail', basicInfo: 'Basic Info', resultListTitle: 'Inspection Results', planNo: 'Ticket No.', moldName: 'Mold Name', planType: 'Task Type', planTypeInspect: 'Inspection', planTypeMaintain: 'Maintenance', configName: 'Task Config', jobStatus: 'Job Status', jobStatusPending: 'Pending', jobStatusProcessing: 'Processing', jobStatusCompleted: 'Completed', jobStatusTimeout: 'Timeout', jobStatusCancelled: 'Cancelled', jobResult: 'Job Result', jobResultOk: 'OK', jobResultNg: 'NG', operatorName: 'Operator', taskTime: 'Task Time', taskEndTime: 'End Time', cancelReason: 'Cancel Reason', createTime: 'Created At', searchPlaceholder: 'Enter ticket no.', empty: 'No inspection records', cancelTask: 'Cancel Task', cancelSuccess: 'Cancelled successfully', cancelFail: 'Cancel failed', placeholderCancelReason: 'Enter cancel reason', validatorCancelReasonRequired: 'Cancel reason is required', inspectionItemName: 'Inspection Item', inspectionMethod: 'Inspection Method', judgmentCriteria: 'Judgment Criteria', valueType: 'Value Type', inspectionResult: 'Inspection Result', inspectionResultPending: 'Pending', inspectionResultPass: 'Pass', inspectionResultFail: 'Fail', textInput: 'Input Value', remark: 'Remark', images: 'Images', noResultData: 'No inspection result data', loadMore: 'Load More' }, mine: { clickLogin: 'Tap to sign in', username: 'Username: {name}', profile: 'Profile', feedback: 'Feedback', service: 'Support', changePassword: 'Change Password', logout: 'Log Out', editProfile: 'Edit Profile', faq: 'FAQ', about: 'About', appSettings: 'Settings' }, setting: { language: 'System Language', currentLanguage: 'Current: {language}', terminalMode: 'Terminal Mode', currentTerminal: 'Current Terminal: {terminal}', switchingTerminal: 'Switching terminal...', terminalSwitched: 'Switched to {terminal}', switchLanguage: 'Switch Language', checkUpdate: 'Check Updates', cleanCache: 'Clear Cache', logout: 'Log Out', serverAddress: 'Server Address', serverAddressHint: 'Enter the backend API address for the current account', serverAddressPlaceholder: 'Enter backend address', serverAddressRequired: 'Please enter the backend address', serverAddressSaved: 'Server address saved. Please log in again', mobile: 'Mobile', scanner: 'Scanner', zhCN: 'Chinese', enUS: 'English' }, about: { appName: 'Besure Production System', version: 'Version', email: 'Official Email', hotline: 'Service Hotline', website: 'Website' }, help: { appUserQuestion: 'App User Questions', otherQuestion: 'Other Questions', appFeatureQuestion: 'What business features are supported by the app?', appFeatureAnswer: 'Plan start, production report, material feeding records, production records', reportQuestion: 'How can I submit a production report?', reportAnswer: 'You can submit it on the report page.', planQuestion: 'How is plan management handled?', planAnswer: 'Use the plan management module.', materialQuestion: 'How to manage feeding records?', materialAnswer: 'Use the feeding record module.', logoutQuestion: 'How do I log out?', logoutAnswer: 'Go to [Mine] - [App Settings] - [Log Out] to sign out.', avatarQuestion: 'How do I change my avatar?', avatarAnswer: 'Go to [Mine] - [Choose Avatar] - [Submit] to update your avatar.', passwordQuestion: 'How do I change my login password?', passwordAnswer: 'Go to [Mine] - [App Settings] - [Change Password] to update your password.' }, info: { username: 'Username', nickname: 'Nickname', gender: 'Gender', male: 'Male', female: 'Female', phone: 'Mobile', email: 'Email', createdAt: 'Created At' }, editInfo: { nickname: 'Nickname', nicknamePlaceholder: 'Enter nickname', phone: 'Mobile', phonePlaceholder: 'Enter mobile number', email: 'Email', emailPlaceholder: 'Enter email', gender: 'Gender', nicknameRequired: 'Nickname is required', phoneRequired: 'Mobile number is required', phoneInvalid: 'Please enter a valid mobile number', emailRequired: 'Email is required', emailInvalid: 'Please enter a valid email' }, pwd: { oldPassword: 'Current Password', newPassword: 'New Password', confirmPassword: 'Confirm Password', oldPasswordPlaceholder: 'Enter current password', newPasswordPlaceholder: 'Enter new password', confirmPasswordPlaceholder: 'Confirm new password', oldPasswordRequired: 'Current password is required', newPasswordRequired: 'New password is required', passwordLength: 'Length must be between 6 and 20 characters', confirmPasswordRequired: 'Please confirm password', passwordNotMatch: 'The two passwords do not match' }, avatar: { chooseAvatar: 'Choose Avatar' }, materialCategory: { moduleName: 'Product Category', subTitle: 'Product material category management', detailTitle: 'Category Detail', basicInfo: 'Basic Info', code: 'Category Code', name: 'Category Name', parentName: 'Parent Category', rootCategory: 'None (Top Level)', sort: 'Sort', status: 'Status', statusEnable: 'Enable', statusDisable: 'Disable', createTime: 'Created At', searchPlaceholder: 'Enter category code/name', createTitle: 'Create Category', editTitle: 'Edit Category', empty: 'No category data', loadEditFailed: 'Failed to load edit data', noId: 'Missing category ID', loadFailed: 'Failed to load category detail', placeholderCode: 'Enter category code', placeholderName: 'Enter category name', placeholderParent: 'Select parent category', placeholderSort: 'Enter sort order', placeholderStatus: 'Select status', validatorCodeRequired: 'Category code is required', validatorNameRequired: 'Category name is required', validatorSortRequired: 'Sort order is required', validatorStatusRequired: 'Status is required', confirmDeleteContent: 'Confirm delete category [{name}]?' }, materialInfo: { moduleName: 'Product Material', subTitle: 'Product material information management', detailTitle: 'Material Detail', basicInfo: 'Basic Info', barCode: 'Barcode', name: 'Material Name', category: 'Category', unit: 'Unit', standard: 'Specification', expiryDay: 'Shelf Life (Days)', status: 'Status', statusEnable: 'Enable', statusDisable: 'Disable', remark: 'Remark', createTime: 'Created At', autoCode: 'Auto Generate', searchPlaceholder: 'Enter material name/barcode', createTitle: 'Create Material', editTitle: 'Edit Material', empty: 'No material data', loadEditFailed: 'Failed to load edit data', noId: 'Missing material ID', loadFailed: 'Failed to load material detail', placeholderBarCode: 'Enter barcode', placeholderName: 'Enter material name', placeholderCategory: 'Select category', placeholderUnit: 'Select unit', placeholderStandard: 'Enter specification', placeholderExpiryDay: 'Enter shelf life days', placeholderStatus: 'Select status', placeholderRemark: 'Enter remark', validatorBarCodeRequired: 'Barcode is required', validatorNameRequired: 'Material name is required', validatorCategoryRequired: 'Category is required', validatorUnitRequired: 'Unit is required', confirmDeleteContent: 'Confirm delete material [{name}]?' }, productBom: { moduleName: 'Product BOM', subTitle: 'Product BOM management', detailTitle: 'BOM Detail', basicInfo: 'Basic Info', code: 'BOM Code', version: 'Version', product: 'Product', unit: 'Unit', yieldRate: 'Yield Rate', isEnable: 'Enabled', enableYes: 'Yes', enableNo: 'No', remark: 'Remark', createTime: 'Created At', searchPlaceholder: 'Enter BOM code', createTitle: 'Create BOM', editTitle: 'Edit BOM', empty: 'No BOM data', loadEditFailed: 'Failed to load edit data', noId: 'Missing BOM ID', loadFailed: 'Failed to load BOM detail', placeholderCode: 'Enter BOM code', placeholderVersion: 'Enter version', placeholderProduct: 'Select product', placeholderUnit: 'Select unit', placeholderYieldRate: 'Enter yield rate', placeholderEnable: 'Select enabled status', placeholderRemark: 'Enter remark', validatorCodeRequired: 'BOM code is required', validatorVersionRequired: 'Version is required', validatorProductRequired: 'Product is required', validatorUnitRequired: 'Unit is required', validatorEnableRequired: 'Enabled status is required', confirmDeleteContent: 'Confirm delete BOM [{code}]?', detailTab: 'BOM Details', detailUsageNumber: 'Usage Qty', detailUnit: 'Unit', detailLossRate: 'Loss Rate', detailRemark: 'Remark', detailEmpty: 'No BOM detail data' }, equipmentCategory: { moduleName: 'Equipment Category', subTitle: 'Equipment category management', detailTitle: 'Category Detail', basicInfo: 'Basic Info', code: 'Category Code', name: 'Category Name', parentName: 'Parent Category', rootCategory: 'None (Top Level)', sort: 'Sort', remark: 'Remark', createTime: 'Created At', searchPlaceholder: 'Enter category code/name', createTitle: 'Create Category', editTitle: 'Edit Category', empty: 'No category data', loadEditFailed: 'Failed to load edit data', noId: 'Missing category ID', loadFailed: 'Failed to load category detail', placeholderCode: 'Enter category code', placeholderName: 'Enter category name', placeholderParent: 'Select parent category', placeholderSort: 'Enter sort order', placeholderRemark: 'Enter remark', validatorCodeRequired: 'Category code is required', validatorNameRequired: 'Category name is required', confirmDeleteContent: 'Confirm delete category [{name}]?' }, equipmentLedger: { moduleName: 'Equipment Ledger11', subTitle: 'Equipment ledger management', detailTitle: 'Equipment Detail', basicInfo: 'Basic Info', deviceCode: 'Device Code', deviceName: 'Device Name', deviceType: 'Device Type', deviceStatus: 'Device Status', lineFilter: 'Line', allFilter: 'All Filters', moreFilter: 'More Filters', categoryStatus: 'Category & Status', categoryInfo: 'Category Info', dateFilter: 'Date Filter', deviceBrand: 'Device Brand', sn: 'Serial No.', scanUnrecognized: 'QR code content not recognized', scanTypeMismatch: 'QR code type does not match', scanFailed: 'Scan failed', deviceSpec: 'Device Spec', isScheduled: 'Scheduled', ratedCapacity: 'Rated Capacity', dailyAverageValue: 'Daily Avg Value', dataCollectionCapacity: 'Data Collection Capacity', productionDate: 'Production Date', outgoingTime: 'Outgoing Date', factoryEntryDate: 'Factory Entry Date', deviceLocation: 'Device Location', deviceManagerName: 'Device Manager', workshop: 'Workshop', remark: 'Remark', creatorName: 'Creator', createTime: 'Created At', autoCode: 'Auto Generate', yes: 'Yes', no: 'No', searchPlaceholder: 'Enter device code/name', createTitle: 'Create Equipment', editTitle: 'Edit Equipment', empty: 'No equipment data', loadEditFailed: 'Failed to load edit data', noId: 'Missing equipment ID', loadFailed: 'Failed to load equipment detail', placeholderDeviceCode: 'Enter device code', placeholderDeviceName: 'Enter device name', placeholderDeviceBrand: 'Enter device brand', placeholderSn: 'Enter serial number', placeholderDeviceType: 'Select device type', placeholderDeviceSpec: 'Enter device spec', placeholderRatedCapacity: 'Enter rated capacity', placeholderDailyAverageValue: 'Enter daily average value', placeholderDataCollectionCapacity: 'Enter data collection capacity', placeholderProductionDate: 'Select production date', placeholderOutgoingTime: 'Select outgoing date', placeholderOutgoingStartTime: 'Start date', placeholderOutgoingEndTime: 'End date', placeholderFactoryEntryDate: 'Select factory entry date', placeholderDeviceLocation: 'Enter device location', placeholderRemark: 'Enter remark', validatorDeviceCodeRequired: 'Device code is required', validatorDeviceNameRequired: 'Device name is required', validatorDeviceTypeRequired: 'Device type is required', validatorProductionDateRequired: 'Production date is required', validatorFactoryEntryDateRequired: 'Factory entry date is required', validatorRatedCapacityRequired: 'Rated capacity is required', validatorDailyAverageValueRequired: 'Daily average value is required', validatorDataCollectionCapacityRequired: 'Data collection capacity is required', confirmDeleteContent: 'Confirm delete equipment [{name}]?', checkHistory: 'Inspection', maintainHistory: 'Maintenance', repairHistory: 'Repair', operator: 'Operator', inspectionMethod: 'Inspection Method', criteria: 'Criteria', inspectionTime: 'Inspection Time', maintainMethod: 'Maintenance Method', maintainTime: 'Maintenance Time', repairName: 'Repair Order Name', faultPhenomenon: 'Fault Phenomenon', faultDescription: 'Fault Description', replacementParts: 'Replacement Parts', repairContent: 'Repair Content', finishDate: 'Finish Date', faultImages: 'Fault Images', repairedImages: 'After-repair Images', noHistoryData: 'No history data', resultPending: 'Pending', resultPass: 'Pass', resultFail: 'Fail', repairPending: 'Pending', repairProcessing: 'Processing', repairCompleted: 'Completed', repairAbnormal: 'Abnormal' }, equipmentMaintenance: { moduleName: 'Equipment Repair', createTitle: 'Create Equipment Repair', editTitle: 'Edit Equipment Repair', detailTitle: 'Equipment Repair Detail', repairTitle: 'Repair Processing', basicInfo: 'Basic Info', repairObject: 'Repair Object', repairCode: 'Repair Order No.', repairName: 'Repair Order Name', requireDate: 'Report Date', acceptedBy: 'Repair Technician', confirmBy: 'Inspector', machineryTypeId: 'Equipment Type', machineryTypeDevice: 'Equipment', machineryTypeKeyItem: 'Key Component', device: 'Equipment', component: 'Key Component', faultLevel: 'Failure Level', isShutdown: 'Shutdown Required', status: 'Document Status', faultInfo: 'Fault Info', faultPhenomenon: 'Fault Phenomenon', faultDescription: 'Fault Description', faultImages: 'Fault Images', repairResultSection: 'Repair Result', repairResult: 'Repair Result', finishDate: 'Completion Date', confirmDate: 'Acceptance Date', downtimeDuration: 'Downtime Duration', faultReason: 'Fault Cause', handlingMeasures: 'Handling Measures', replacementParts: 'Replacement Parts', repairContent: 'Repair Content', repairedImages: 'Post-repair Images', remark: 'Remark', autoCode: 'Auto Generate', deviceLabel: 'Equipment', reportTimeLabel: 'Report Time', searchPlaceholder: 'Enter order no/device code/device name', empty: 'No repair records', statusPending: 'Pending Repair', statusPassed: 'Passed', statusRejected: 'Rejected', statusDocumentPending: 'Pending', statusDocumentFinished: 'Finished', moreFilter: 'More Filters', statusFilter: 'Status Filters', dateFilter: 'Date Filters', placeholderRepairCode: 'Enter repair order no.', placeholderRepairName: 'Enter repair order name', placeholderRequireStartDate: 'Report start date', placeholderRequireEndDate: 'Report end date', placeholderFinishStartDate: 'Completion start date', placeholderFinishEndDate: 'Completion end date', placeholderConfirmStartDate: 'Acceptance start date', placeholderConfirmEndDate: 'Acceptance end date', placeholderRequireDate: 'Select report date', placeholderAcceptedBy: 'Select repair technician', placeholderConfirmBy: 'Select inspector', placeholderDevice: 'Select equipment', placeholderComponent: 'Select key component', placeholderFaultPhenomenon: 'Enter fault phenomenon', placeholderFaultDescription: 'Enter fault description', placeholderFinishDate: 'Select completion date', placeholderConfirmDate: 'Select acceptance date', placeholderDowntimeDuration: 'Enter downtime duration in hours', placeholderFaultReason: 'Enter fault cause', placeholderHandlingMeasures: 'Enter handling measures', placeholderReplacementParts: 'Enter replacement parts', placeholderRepairContent: 'Enter repair content', placeholderRemark: 'Enter remark', loadDetailFailed: 'Failed to load details', scanUnrecognized: 'No content recognized', scanEquipmentRequired: 'Please scan an equipment QR code', deviceNotFound: 'Matching equipment not found', scanFailed: 'Scan failed', maxUploadCount: 'You can upload up to 9 images', saving: 'Saving', saveSuccess: 'Saved successfully', submitSuccess: 'Submitted successfully', submitFailed: 'Submit failed', noId: 'Missing repair order ID', confirmDeleteContent: 'Delete repair order "{code}"?', validatorRepairCodeRequired: 'Please enter the repair order no.', validatorRepairNameRequired: 'Please enter the repair order name', validatorDeviceRequired: 'Please select equipment', validatorComponentRequired: 'Please select key component', validatorRequireDateRequired: 'Please select the report date', validatorFaultLevelRequired: 'Please select the failure level', validatorIsShutdownRequired: 'Please select whether shutdown is required', validatorFaultPhenomenonRequired: 'Please enter the fault phenomenon', lineFilter: 'Line', validatorRepairStatusRequired: 'Please select the repair result', validatorFinishDateRequired: 'Please select the completion date', validatorConfirmDateRequired: 'Please select the acceptance date' }, criticalComponent: { moduleName: 'Critical Component', subTitle: 'Equipment critical component management', detailTitle: 'Component Detail', basicInfo: 'Basic Info', code: 'Component Code', name: 'Component Name', deviceSpec: 'Specification', description: 'Description', count: 'Count', remark: 'Remark', creatorName: 'Creator', createTime: 'Created At', autoCode: 'Auto Generate', searchPlaceholder: 'Enter code/name', createTitle: 'Create Component', editTitle: 'Edit Component', empty: 'No component data', loadEditFailed: 'Failed to load edit data', noId: 'Missing component ID', loadFailed: 'Failed to load component detail', placeholderCode: 'Enter component code', placeholderName: 'Enter component name', placeholderDeviceSpec: 'Enter specification', placeholderDescription: 'Enter description', placeholderCount: 'Enter count', placeholderRemark: 'Enter remark', validatorCodeRequired: 'Component code is required', validatorNameRequired: 'Component name is required', confirmDeleteContent: 'Confirm delete component [{name}]?' }, moldLedger: { moduleName: 'Mold Ledger', subTitle: 'Mold ledger management', detailTitle: 'Mold Detail', basicInfo: 'Mold Basic Info', moldPlaceholder: 'Mold', moldName: 'Mold Name', product: 'Product', moldCode: 'Mold Code', status: 'Status', versionSpec: 'Version/Spec', cavityCount: 'Cavity Count', currentDevice: 'Current Device', useCount: 'Use Count', expand: 'Expand', collapse: 'Collapse', tabChildMold: 'Sub-molds', tabInspection: 'Inspection', tabRepair: 'Repair', tabMaintenance: 'Maintenance', tabInstall: 'Installation', installLocation: 'Install Location', material: 'Material', quantity: 'Quantity', lastReplace: 'Last Replace', usedDays: 'Used {days} days', remark: 'Remark', noChildMold: 'No sub-mold data', noInspection: 'No inspection records', noRepair: 'No repair records', noMaintenance: 'No maintenance records', noInstall: 'No installation records', inspectionMethod: 'Inspection Method', criteria: 'Criteria', inspectionTime: 'Inspection Time', maintainMethod: 'Maintenance Method', maintainTime: 'Maintenance Time', repairProject: 'Repair Project', projectContent: 'Project Content', finishTime: 'Finish Time', operateMold: 'Mold', operator: 'Operator', time: 'Time', upperMold: 'Mount', lowerMold: 'Dismount', missingBrandId: 'Missing mold brand ID', detailLoadFailed: 'Failed to load detail', childLoadFailed: 'Failed to load sub-molds', inspectionLoadFailed: 'Failed to load inspection records', repairLoadFailed: 'Failed to load repair records', maintainLoadFailed: 'Failed to load maintenance records', installLoadFailed: 'Failed to load installation records', resultPending: 'Pending', resultPass: 'Pass', resultWarning: 'Warning', repairCompleted: 'Completed', repairAbnormal: 'Abnormal', repairProcessing: 'Processing', searchPlaceholder: 'Enter mold code or name', allStatus: 'All', selectMoldStatus: 'Select Mold Status', clear: 'Clear', name: 'Name', createTime: 'Created At', confirmDeleteContent: 'Confirm delete mold brand "{name}"?', empty: 'No mold ledger data', scanUnrecognized: 'Unrecognized QR code', scanFormatError: 'Invalid QR code format', scanFailed: 'Scan failed', noIdView: 'Missing ID, cannot view details', noIdDelete: 'Missing ID, cannot delete' }, moldCheck: { moduleName: 'Mold Inspection', addTitle: 'Add Inspection', detailTitle: 'Inspection Detail', searchPlaceholder: 'Enter inspection No.', empty: 'No inspection records', add: 'Add', moldName: 'Mold Name', moldCode: 'Mold Code', product: 'Product', status: 'Status', taskType: 'Task Type', taskTypeInspect: 'Inspection', taskTypeMaintain: 'Maintenance', planNo: 'Inspection No.', taskTime: 'Task Time', template: 'Template', operator: 'Operator', jobStatusPending: 'Pending', jobStatusProcessing: 'Processing', jobStatusCompleted: 'Completed', jobStatusTimeout: 'Timeout', jobStatusCancelled: 'Cancelled', jobResultOk: 'OK', jobResultNg: 'NG', progressTitle: 'Progress', noResultData: 'No inspection result data', requiredText: 'Required', inspectionMethod: 'Inspection Method', judgmentCriteria: 'Judgment Criteria', textInput: 'Input Value', inputPlaceholder: 'Enter value', images: 'Images', remark: 'Remark', resultText: 'Result', inspectionResultPass: 'Pass', inspectionResultFail: 'Fail', inspectionResultPending: 'Pending', maxUploadCount: 'Max 3 images', selectAllDecisionError: 'Please select all inspection results', currentMoldInfo: 'Mold Info', moldGroupCode: 'Mold Group Code', moldGroupName: 'Mold Group Name', cavityCount: 'Cavity Count', moldSize: 'Mold Size', currentDevice: 'Current Device', selectMold: 'Select Mold', reSelectMold: 'Re-select Mold', selectMoldError: 'Please select a mold', searchMold: 'Enter mold name', noMoldInfo: 'Please select a mold', noMoldData: 'No molds available', taskName: 'Task Name', taskInfo: 'Task Info', placeholderTaskName: 'Enter task name', templateSelection: 'Template/Task Selection', selectTemplate: 'Select Template', selectTemplateError: 'Please select inspection template', noItems: 'Please select inspection template first', noTemplate: 'No templates', resultListTitle: 'Inspection Results', editResult: 'Edit', cancelEdit: 'Cancel Edit', submit: 'Submit Inspection', submitSuccess: 'Inspection submitted successfully', submitFailed: 'Failed to submit inspection', reInspect: 'Re-inspect' }, moldMaintain: { moduleName: 'Mold Maintenance', addTitle: 'Add Maintenance', detailTitle: 'Maintenance Detail', searchPlaceholder: 'Enter maintenance No.', empty: 'No maintenance records', add: 'Add', moldName: 'Mold Name', moldCode: 'Mold Code', product: 'Product', status: 'Status', taskType: 'Task Type', taskTypeInspect: 'Inspection', taskTypeMaintain: 'Maintenance', planNo: 'Maintenance No.', taskTime: 'Task Time', template: 'Template', operator: 'Operator', jobResultOk: 'OK', jobResultNg: 'NG', progressTitle: 'Progress', noResultData: 'No maintenance result data', requiredText: 'Required', inspectionMethod: 'Maintenance Method', judgmentCriteria: 'Judgment Criteria', textInput: 'Input Value', inputPlaceholder: 'Enter value', images: 'Images', remark: 'Remark', resultText: 'Result', inspectionResultPass: 'Pass', inspectionResultFail: 'Fail', inspectionResultPending: 'Pending', maxUploadCount: 'Max 3 images', selectAllDecisionError: 'Please select all maintenance results', currentMoldInfo: 'Mold Info', moldGroupCode: 'Mold Group Code', moldGroupName: 'Mold Group Name', cavityCount: 'Cavity Count', moldSize: 'Mold Size', currentDevice: 'Current Device', selectMold: 'Select Mold', reSelectMold: 'Re-select Mold', selectMoldError: 'Please select a mold', searchMold: 'Enter mold name', noMoldInfo: 'Please select a mold', noMoldData: 'No molds available', taskName: 'Task Name', taskInfo: 'Task Info', placeholderTaskName: 'Enter task name', templateSelection: 'Template/Task Selection', selectTemplate: 'Select Template', selectTemplateError: 'Please select maintenance template', noItems: 'Please select maintenance template first', noTemplate: 'No templates', resultListTitle: 'Inspection Results', editResult: 'Edit', cancelEdit: 'Cancel Edit', submit: 'Submit Maintenance', submitSuccess: 'Maintenance submitted successfully', submitFailed: 'Failed to submit maintenance', reInspect: 'Re-maintain' }, moldPressureNet: { moduleName: 'Replace Pressure Net', recordTitle: 'Pressure Net Replacement', recordDesc: 'Select mold group and sub-mold, then confirm replacement time', history: 'History', historyTitle: 'Pressure Net History', moldGroup: 'Mold Group', selectMoldGroup: 'Select Mold Group', searchMoldGroup: 'Enter mold group name', noMoldGroup: 'No mold groups', moldGroupName: 'Mold Group Name', moldGroupCode: 'Mold Group Code', product: 'Product', subMold: 'Sub-mold', selectSubMold: 'Select Sub-mold', reSelectMoldGroup: 'Re-select Mold Group', reSelectSubMold: 'Re-select Sub-mold', subMoldCode: 'Sub-mold Code', subMoldName: 'Sub-mold Name', searchSubMold: 'Search sub-mold name/code', noSubMold: 'No sub-molds', replaceInfo: 'Replacement Info', replaceTime: 'Replacement Time', pressureNetTime: 'Pressure Net Time', selectReplaceTime: 'Select replacement time', operator: 'Operator', selectOperator: 'Select operator', noOperator: 'No operators', remark: 'Remark', remarkPlaceholder: 'Enter replacement reason or remark', confirmReplace: 'Confirm', selectMoldGroupError: 'Please select a mold group', selectSubMoldError: 'Please select a sub-mold', selectedCount: '{count} sub-mold(s) selected', selectReplaceTimeError: 'Please select replacement time', submitSuccess: 'Saved successfully', submitFailed: 'Save failed', historyMoldIdPlaceholder: 'Enter sub-mold ID, blank for all', searchBrandName: 'Mold Group Name', selectDate: 'Select Date', createTime: 'Create Time', noHistory: 'No pressure net history' }, moldRepair: { moduleName: 'Mold Repair', createTitle: 'Create Mold Repair', editTitle: 'Edit Mold Repair', detailTitle: 'Mold Repair Detail', repairTitle: 'Repair Processing', basicInfo: 'Basic Info', repairObject: 'Repair Object', repairCode: 'Repair Code', repairName: 'Repair Name', requireDate: 'Require Date', acceptedBy: 'Repair User', confirmBy: 'Confirm User', mold: 'Mold', moldCode: 'Mold Code', moldName: 'Mold Name', specModel: 'Spec Model', brand: 'Brand', faultLevel: 'Fault Level', isShutdown: 'Is Shutdown', status: 'Status', faultInfo: 'Fault Info', faultPhenomenon: 'Fault Phenomenon', faultDescription: 'Fault Description', faultImages: 'Fault Images', repairResultSection: 'Repair Result', repairResult: 'Repair Result', finishDate: 'Finish Date', confirmDate: 'Confirm Date', downtimeDuration: 'Downtime Duration', faultReason: 'Fault Reason', handlingMeasures: 'Handling Measures', replacementParts: 'Replacement Parts', repairContent: 'Repair Content', repairedImages: 'Repaired Images', remark: 'Remark', autoCode: 'Auto Code', moldLabel: 'Mold', reportTimeLabel: 'Report Time', searchPlaceholder: 'Enter code or mold code', scanMoldPlaceholder: 'Scan/enter mold QR code', empty: 'No repair records', statusPending: 'Pending', statusPassed: 'Passed', statusRejected: 'Rejected', orderStatusPending: 'Pending', orderStatusDone: 'Completed', placeholderRepairCode: 'Enter repair code', placeholderRepairName: 'Enter repair name', placeholderRequireDate: 'Select require date', placeholderAcceptedBy: 'Select repair user', placeholderConfirmBy: 'Select confirm user', placeholderUserSearch: 'Search by nickname', placeholderMold: 'Select mold', placeholderMoldNameAuto: 'Auto filled', placeholderMoldCodeAuto: 'Auto filled', placeholderFaultPhenomenon: 'Enter fault phenomenon', placeholderFaultDescription: 'Enter fault description', placeholderFinishDate: 'Select finish date', placeholderConfirmDate: 'Select confirm date', placeholderDowntimeDuration: 'Enter downtime duration (hours)', placeholderFaultReason: 'Enter fault reason', placeholderHandlingMeasures: 'Enter handling measures', placeholderReplacementParts: 'Enter replacement parts', placeholderRepairContent: 'Enter repair content', placeholderRemark: 'Enter remark', loadDetailFailed: 'Failed to load detail', scanUnrecognized: 'Unrecognized content', scanMoldRequired: 'Please scan mold QR code', moldNotFound: 'Mold not found', scanFailed: 'Scan failed', maxUploadCount: 'Max 9 images', noUserData: 'No user data', saving: 'Saving', saveSuccess: 'Saved successfully', submitSuccess: 'Submitted successfully', submitFailed: 'Submit failed', noId: 'Missing repair ID', confirmDeleteContent: 'Confirm delete repair "{code}"?', validatorRepairCodeRequired: 'Repair code is required', validatorRepairNameRequired: 'Repair name is required', validatorMoldRequired: 'Mold is required', validatorRequireDateRequired: 'Require date is required', validatorFaultLevelRequired: 'Fault level is required', validatorIsShutdownRequired: 'Is shutdown is required', validatorFaultPhenomenonRequired: 'Fault phenomenon is required', validatorUserRequired: 'Please select a user', validatorRepairStatusRequired: 'Repair result is required', validatorFinishDateRequired: 'Finish date is required', validatorConfirmDateRequired: 'Confirm date is required' }, productInbound: { moduleName: 'Product Inbound', createTitle: 'New Product Inbound', detailTitle: 'Product Inbound Detail', selectProductTitle: 'Select Product', selectTaskTitle: 'Select Task Order', selectTaskProductTitle: 'Select Task Product', selectPalletTitle: 'Select Pallet', createPalletTitle: 'New Pallet', all: 'All', inboundStatus: 'Inbound Status', reset: 'Reset', clear: 'Clear', loading: 'Loading...', loadingMore: 'Loading more...', noMoreData: 'No more data', confirm: 'Confirm', cancel: 'Cancel', back: 'Back', submit: 'OK', submitting: 'Submitting...', tip: 'Tip', choose: 'Please select', yes: 'Yes', no: 'No', statusPending: 'Pending Inbound', statusAuditing: 'Pending Review', statusStored: 'Stored', statusRejected: 'Rejected', searchDocumentPlaceholder: 'Enter inbound No.', searchProductPlaceholder: 'Search product name/code/spec', searchTaskPlaceholder: 'Search task order No.', searchTaskProductPlaceholder: 'Search product name/code', searchPalletPlaceholder: 'Search pallet code', productInfo: 'Product Info', inboundInfo: 'Inbound Info', inboundTime: 'Inbound Time', selectInboundTime: 'Select inbound time', operator: 'Operator', selectOperator: 'Select operator', inboundQuantity: 'Inbound Quantity', reviewer: 'Reviewer', auditor: 'Auditor', documentNo: 'Document No.', inboundType: 'Inbound Type', remark: 'Remark', remarkPlaceholder: 'Enter remark', attachment: 'Attachment', chooseFile: 'Choose File', itemList: 'Inbound List', addProduct: 'Add Product', product: 'Product', pallet: 'Pallet', packageCount: 'Packages', pieceCount: 'Pieces', inboundPackageCount: 'Inbound Packages', inboundPieceCount: 'Inbound Pieces', palletQuantity: 'Pallets', taskOrder: 'Task Order', taskProduct: 'Task Product', emptyAddProduct: 'Please add a product', emptyInboundList: 'No product inbound orders', emptyItemList: 'No inbound items', confirmInbound: 'Confirm Inbound', inboundSuccess: 'Inbound successful', saveFailed: 'Save failed', loadFailed: 'Load failed', detailLoadFailed: 'Failed to load detail', operationFailed: 'Operation failed', submitAudit: 'Submit Review', auditPass: 'Approve', auditReject: 'Reject', auditPassSuccess: 'Approved', auditRejectSuccess: 'Rejected', submitAuditSuccess: 'Review submitted', submitFailed: 'Submit failed', selectAuditor: 'Select auditor', selectInboundStatus: 'Select Inbound Status', confirmAuditPass: 'Confirm approving this product inbound order?', confirmAuditReject: 'Confirm rejecting this product inbound order?', noDetailId: 'No detail ID', completeProductPalletInfo: 'Complete product and pallet information', addProductFirst: 'Please add a product first', taskInfo: 'Task Info', relatedTask: 'Related Task Order', selectTask: 'Select task order', selectTaskProduct: 'Select task product', selectProduct: 'Select product', selectPallet: 'Select pallet', selectPalletFirst: 'Select pallet first', selectTaskFirst: 'Select task order first', selectProductFirst: 'Select product first', emptyTaskProducts: 'No products for this task order', completePalletInfo: 'Complete pallet warehouse/location/packages', productAdded: 'Product added', taskProductLoadFailed: 'Failed to load task products', workOrderNo: 'Work Order No.', code: 'Code', packagingScheme: 'Packaging Scheme', palletPackageQuantity: 'Packages per Pallet', packageQuantity: 'Pieces per Package', selectedPalletCount: '{count} pallet(s) selected', selectedCount: '{count} selected', packageUnit: '{count} pkg', pieceUnit: '{count} pcs', warehouse: 'Warehouse', area: 'Area', location: 'Location', deliveryDate: 'Delivery Date', emptyTask: 'No task orders', emptyProduct: 'No product data', emptyTaskProduct: 'No task products', emptyPallet: 'No pallets', spec: 'Spec', unit: 'Unit', palletCode: 'Pallet Code', palletType: 'Pallet Type', palletStatus: 'Pallet Status', autoCode: 'Auto Code', length: 'Length', width: 'Width', height: 'Height', productCount: 'Packages', ratedLoadWeight: 'Rated Load', enterPalletCode: 'Enter pallet code', selectPalletType: 'Select pallet type', selectPalletStatus: 'Select pallet status', enterPackageCount: 'Enter packages', selectWarehouse: 'Select warehouse', selectArea: 'Select area', selectUnit: 'Select unit', selectWarehouseFirst: 'Select warehouse first', emptyArea: 'No areas', enterRatedLoadWeight: 'Enter rated load', createSuccess: 'Created successfully', createPalletFailed: 'Failed to create pallet' }, productCheck: { moduleName: 'Product Stock Check', createTitle: 'New Product Stock Check', executeTitle: 'Execute Stock Check', detailTitle: 'Product Stock Check Detail', selectProductTitle: 'Select Product', selectItemTitle: 'Select Check Items', selectWarehouseTitle: 'Select Warehouse', selectAreaTitle: 'Select Area', all: 'All', reset: 'Reset', clear: 'Clear', loading: 'Loading...', loadingMore: 'Loading more...', noMoreData: 'No more data', confirm: 'Confirm', cancel: 'Cancel', submit: 'OK', submitting: 'Submitting...', tip: 'Tip', choose: 'Please select', delete: 'Delete', save: 'Save', statusDraft: 'Pending Submit', statusAuditing: 'Pending Review', statusApproved: 'Reviewed', statusRejected: 'Rejected', searchDocumentPlaceholder: 'Enter check No.', searchProductPlaceholder: 'Search product name/code/spec', searchWarehousePlaceholder: 'Search warehouse name', searchAreaPlaceholder: 'Search area name/code', searchItemPlaceholder: 'Search product/warehouse/area', productInfo: 'Product Info', checkInfo: 'Check Info', checkTime: 'Check Time', selectCheckTime: 'Select check time', sourceType: 'Source Type', sourceTypeStock: 'By Stock', sourceTypeProduct: 'By Product', selectWarehouse: 'Select warehouse', selectWarehouseFirst: 'Select warehouse first', selectArea: 'Select area', warehouse: 'Warehouse', area: 'Area', warehouseAddress: 'Address', principal: 'Principal', checkStatus: 'Check Status', checked: 'Checked', unchecked: 'Unchecked', creator: 'Creator', reviewer: 'Reviewer', auditor: 'Reviewer', documentNo: 'Check No.', remark: 'Remark', remarkPlaceholder: 'Enter remark', productAndItems: 'Products & Items', selectProduct: 'Select Product', product: 'Product', checkItems: 'Check Items', selectAll: 'Select All', selectedCount: '{count} selected', selectedItemCount: '{count} item(s) selected', selectCheckItems: 'Select check items', stockCount: 'Book Qty', code: 'Code', spec: 'Spec', unit: 'Unit', difference: 'Difference', actualCount: 'Actual Qty', saveDraft: 'Save Draft', finishCheck: 'Finish Check', execute: 'Execute', submitAudit: 'Submit Review', auditPass: 'Approve', auditReject: 'Reject', auditPassSuccess: 'Approved', auditRejectSuccess: 'Rejected', submitAuditSuccess: 'Review submitted', submitFailed: 'Submit failed', selectAuditor: 'Select reviewer', selectStatus: 'Select Check Status', confirmAuditPass: 'Approve this product stock check?', confirmAuditReject: 'Reject this product stock check?', confirmDelete: 'Delete this product stock check?', deleteSuccess: 'Deleted', operationFailed: 'Operation failed', loadFailed: 'Load failed', detailLoadFailed: 'Failed to load detail', emptyList: 'No product stock checks', emptyProduct: 'No product data', emptyWarehouse: 'No warehouses', emptyArea: 'No areas', emptyItemList: 'No check items', emptyAddProduct: 'Please add a product', selectProductFirst: 'Select product first', completeCheckItems: 'Complete check item information', createSuccess: 'Created successfully', saveFailed: 'Save failed', saveSuccess: 'Saved', checkSuccess: 'Check completed', noDetailId: 'No detail ID', enterActualCount: 'Enter actual quantity', confirmActualCountZero: '{items} actual quantity is 0. Continue?' }, productOutbound: { moduleName: 'Product Outbound', createTitle: 'New Product Outbound', detailTitle: 'Product Outbound Detail', selectProductTitle: 'Select Product', selectPalletTitle: 'Select Pallet', all: 'All', outboundStatus: 'Outbound Status', reset: 'Reset', clear: 'Clear', loading: 'Loading...', loadingMore: 'Loading more...', noMoreData: 'No more data', confirm: 'Confirm', cancel: 'Cancel', back: 'Back', submit: 'OK', submitting: 'Submitting...', tip: 'Tip', choose: 'Please select', statusPending: 'Pending Outbound', statusAuditing: 'Pending Review', statusStored: 'Outbounded', statusRejected: 'Rejected', searchDocumentPlaceholder: 'Enter outbound No.', searchProductPlaceholder: 'Search product name/code/spec', searchPalletPlaceholder: 'Search pallet code', productInfo: 'Product Info', outboundInfo: 'Outbound Info', outboundTime: 'Outbound Time', selectOutboundTime: 'Select outbound time', operator: 'Operator', selectOperator: 'Select operator', outboundQuantity: 'Outbound Qty', reviewer: 'Reviewer', auditor: 'Reviewer', documentNo: 'Document No.', outboundType: 'Outbound Type', remark: 'Remark', remarkPlaceholder: 'Enter remark', attachment: 'Attachment', chooseFile: 'Choose File', itemList: 'Outbound Items', addProduct: 'Add Product', product: 'Product', pallet: 'Pallet', packageCount: 'Packages', pieceCount: 'Pieces', outboundPackageCount: 'Outbound Packages', outboundPieceCount: 'Outbound Pieces', availablePackageCount: 'Available Packages', enterOutboundPackageCount: 'Enter outbound packages', palletQuantity: 'Pallet Qty', emptyAddProduct: 'Please add product', emptyOutboundList: 'No product outbound records', emptyItemList: 'No outbound items', confirmOutbound: 'Confirm Outbound', outboundSuccess: 'Outbound success', saveFailed: 'Save failed', loadFailed: 'Load failed', detailLoadFailed: 'Detail load failed', operationFailed: 'Operation failed', submitAudit: 'Submit Review', auditPass: 'Approve', auditReject: 'Reject', auditPassSuccess: 'Approved', auditRejectSuccess: 'Rejected', submitAuditSuccess: 'Submitted for review', submitFailed: 'Submit failed', selectAuditor: 'Select reviewer', selectOutboundStatus: 'Select outbound status', confirmAuditPass: 'Approve this product outbound order?', confirmAuditReject: 'Reject this product outbound order?', noDetailId: 'No detail ID', completeProductPalletInfo: 'Complete product and pallet info', addProductFirst: 'Add product first', selectProduct: 'Select product', selectPallet: 'Select pallet', selectPalletFirst: 'Select pallet first', selectProductFirst: 'Select product first', completePalletInfo: 'Complete pallet warehouse/location/package info', productAdded: 'Product added', code: 'Code', packagingScheme: 'Packaging Scheme', palletPackageQuantity: 'Packages per Pallet', packageQuantity: 'Pieces per Package', selectedPalletCount: '{count} pallets selected', selectedCount: '{count} selected', packageUnit: '{count} packages', pieceUnit: '{count} pieces', warehouse: 'Warehouse', area: 'Area', location: 'Location', emptyProduct: 'No product data', emptyPallet: 'No pallets', spec: 'Spec', unit: 'Unit', palletCode: 'Pallet Code', palletType: 'Pallet Type', palletStatus: 'Pallet Status', outMode: 'Outbound Mode', outModeWholePallet: 'Whole Pallet', outModeSplitPallet: 'Split Pallet' }, productInventory: { moduleName: 'Product Inventory', detailTitle: 'Product Inventory Detail', searchPlaceholder: 'Enter product code or name', allWarehouse: 'All Warehouses', warehousePlaceholder: 'Warehouse Filter', productInfo: 'Product Info', stockInfo: 'Stock Info', productName: 'Product Name', barCode: 'Product Code', warehouse: 'Warehouse', area: 'Area', count: 'Base Qty', stockDisplay: 'Stock Display', areaStockDisplay: 'Area Stock Display', totalPackageCount: 'Total Packages', totalBaseCount: 'Total Pieces', unit: 'Unit', category: 'Product Category', standard: 'Spec', packagingRule: 'Packaging/Conversion Rule', latestInTime: 'Latest Inbound', latestOutTime: 'Latest Outbound', remark: 'Remark', empty: 'No product inventory data', noDetailId: 'No product inventory ID' }}