en.ts 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018
  1. export default {
  2. common: {
  3. save: 'Save',
  4. cancel: 'Cancel',
  5. delete: 'Delete',
  6. edit: 'Edit',
  7. add: 'Add',
  8. confirm: 'Confirm',
  9. minutes: 'Minutes',
  10. loading: 'Loading...',
  11. success: 'Success',
  12. error: 'Error',
  13. warning: 'Warning',
  14. info: 'Info',
  15. menu: 'Menu',
  16. systemName: 'Herui Sihang.AI Model Training System',
  17. sidebarSystemName: 'AI Large Model Training System'
  18. },
  19. settings: {
  20. system: {
  21. title: 'System Configuration',
  22. language: 'System Language',
  23. autoSaveInterval: 'Auto Save Interval',
  24. dataRetention: 'Data Retention',
  25. alarmThreshold: 'Alarm Threshold'
  26. },
  27. mes: {
  28. title: 'MES Integration',
  29. serverUrl: 'Server Address',
  30. apiKey: 'API Key',
  31. testConnection: 'Test Connection'
  32. },
  33. devices: {
  34. title: 'Device Management',
  35. all: 'All',
  36. camera: 'Camera',
  37. light: 'Light',
  38. plc: 'Controller',
  39. disableAutoCheck: 'Disable Auto Check',
  40. refreshStatus: 'Refresh Device Status',
  41. addDevice: 'Add Device',
  42. status: {
  43. online: 'Online',
  44. offline: 'Offline',
  45. error: 'Error',
  46. unknown: 'Unknown'
  47. },
  48. preview: {
  49. setOnline: 'Set Online',
  50. setOffline: 'Set Offline',
  51. edit: 'Edit Device',
  52. delete: 'Delete Device',
  53. title: '{name} Preview',
  54. status: 'Camera Status',
  55. streamUrl: 'Stream URL',
  56. notConfigured: 'Not Configured'
  57. },
  58. form: {
  59. title: {
  60. add: 'Add Device',
  61. edit: 'Edit Device'
  62. },
  63. name: 'Device Name',
  64. type: 'Device Type',
  65. model: 'Device Model',
  66. config: 'Device Configuration',
  67. camera: {
  68. type: 'Camera Type',
  69. types: {
  70. local: 'Local Camera',
  71. ip: 'IP Camera',
  72. rtsp: 'RTSP Stream',
  73. http: 'HTTP Stream'
  74. },
  75. deviceId: 'Device ID',
  76. streamUrl: 'Camera URL'
  77. },
  78. light: {
  79. port: 'Serial Port',
  80. mode: 'Working Mode',
  81. modes: {
  82. continuous: 'Continuous',
  83. flash: 'Flash',
  84. trigger: 'Trigger'
  85. }
  86. },
  87. plc: {
  88. ip: 'IP地址',
  89. rack: 'Rack Number',
  90. slot: 'Slot Number'
  91. }
  92. },
  93. noDevices: 'No {type} devices',
  94. deleteConfirm: 'Are you sure you want to delete device "{name}"?',
  95. type: {
  96. camera: 'Camera',
  97. light: 'Light',
  98. plc: 'Controller'
  99. }
  100. },
  101. notifications: {
  102. savingSettings: 'Saving system settings...',
  103. settingsSaved: 'System settings saved',
  104. savingFailed: 'Failed to save system settings',
  105. savingMes: 'Saving MES settings...',
  106. mesSaved: 'MES settings saved',
  107. mesSavingFailed: 'Failed to save MES settings',
  108. loadDevicesFailed: 'Failed to load device list',
  109. deviceUpdated: 'Device updated',
  110. deviceAdded: 'Device added',
  111. deviceDeleted: 'Device deleted',
  112. deviceSaveFailed: 'Failed to save device',
  113. deviceDeleteFailed: 'Failed to delete device',
  114. cameraIdError: 'Failed to get camera ID, please check the configuration',
  115. deviceStatusChanged: '{name} {status}',
  116. deviceStatusUpdateFailed: 'Failed to update device status',
  117. loadSettingsFailed: 'Failed to load system settings',
  118. loadMesFailed: 'Failed to load MES settings',
  119. languageChanged: 'Language changed'
  120. }
  121. },
  122. status: {
  123. cameraList: 'Camera List',
  124. noCameras: 'No cameras configured',
  125. camera: 'Camera',
  126. modelList: 'Model List',
  127. noModels: 'No models loaded',
  128. model: 'Model',
  129. deviceList: 'Device List',
  130. noDevices: 'No control devices configured',
  131. device: 'Device',
  132. online: 'Online',
  133. offline: 'Offline',
  134. error: 'Error',
  135. connected: 'Connected',
  136. disconnected: 'Disconnected',
  137. partiallyConnected: 'Partially Connected',
  138. loaded: 'Loaded',
  139. notLoaded: 'Not Loaded'
  140. },
  141. emergencyStop: {
  142. title: 'Emergency Stop',
  143. message: 'Confirm to execute emergency stop operation? This will stop all device operations.',
  144. confirm: 'Confirm Stop',
  145. executed: 'Emergency stop operation executed'
  146. },
  147. routes: {
  148. dashboard: 'Dashboard',
  149. realtime: 'Realtime Monitoring',
  150. history: 'History',
  151. annotation: 'Data Annotation',
  152. model: 'Model Training',
  153. modelTest: 'Model Test',
  154. cvOperations: 'Image Processing',
  155. settings: 'Settings',
  156. notFound: 'Page Not Found'
  157. },
  158. dashboard: {
  159. systemStatus: {
  160. title: 'System Status',
  161. uptime: 'Uptime',
  162. memory: 'Memory',
  163. disk: 'Disk',
  164. systemNormal: 'System Normal',
  165. systemLoadHigh: 'System Load High',
  166. systemResourceStress: 'System Resource Stress',
  167. systemStatusError: 'System Status Error',
  168. days: 'DAYS ',
  169. hours: 'HOURS ',
  170. minutes: 'MINUTES ',
  171. seconds: 'SECONDS ',
  172. unknown:'UNKNOWN'
  173. },
  174. deviceStatus: {
  175. title: 'Device Status',
  176. onlineRate: 'Online Rate',
  177. total: 'Total',
  178. online: 'Online',
  179. offline: 'Offline',
  180. error: 'Error',
  181. cameras: 'Cameras'
  182. },
  183. detectionStats: {
  184. title: 'Today\'s Detection Stats',
  185. comparedToYesterday: 'Compared to yesterday ({count}) {change}',
  186. increase: 'increase',
  187. decrease: 'decrease'
  188. },
  189. defectStats: {
  190. title: 'Today\'s Defect Stats',
  191. comparedToYesterday: 'Compared to yesterday ({count}) {change}',
  192. increase: 'increase',
  193. decrease: 'decrease'
  194. },
  195. accuracy: {
  196. title: 'Detection Accuracy',
  197. comparedToYesterday: 'Compared to yesterday ({value}%) {change}',
  198. improve: 'improved',
  199. decrease: 'decreased',
  200. rate: 'Accuracy'
  201. },
  202. alerts: {
  203. title: 'Recent Alerts',
  204. new: 'New',
  205. noAlerts: 'No alerts'
  206. },
  207. trend: {
  208. title: 'Detection Trend (Last 7 Days)',
  209. total: 'Total',
  210. pass: 'Pass',
  211. fail: 'Fail'
  212. }
  213. },
  214. history: {
  215. searchText: 'Search Text',
  216. status: {
  217. title: 'Detection Result',
  218. all: 'All',
  219. pass: 'Pass',
  220. fail: 'Fail',
  221. unknown: 'Unknown'
  222. },
  223. dateRange: 'Date Range',
  224. search: 'Search',
  225. export_excel: 'Export',
  226. noData: 'No historical records',
  227. detail: {
  228. title: 'Detection Record Details',
  229. originalImage: 'Original Image',
  230. processedImage: 'Processed Image',
  231. noImage: 'No Image',
  232. timestamp: 'Detection Time',
  233. status: 'Detection Result',
  234. text: 'Recognized Text',
  235. noText: 'Unable to Recognize',
  236. confidence: 'Confidence',
  237. device: 'Device Used'
  238. },
  239. columns: {
  240. timestamp: 'Detection Time',
  241. text: 'Recognized Text',
  242. confidence: 'Confidence',
  243. status: 'Detection Result',
  244. device: 'Device Used',
  245. actions: 'Actions'
  246. },
  247. delete: {
  248. confirm: 'Are you sure you want to delete this detection record?'
  249. },
  250. export: {
  251. loading: 'Preparing to export data...',
  252. noData: 'No matching records to export',
  253. success: 'Successfully exported {count} records',
  254. failed: 'Export failed',
  255. fileName: 'Detection History',
  256. columns: {
  257. timestamp: 'Detection Time',
  258. text: 'Recognized Text',
  259. confidence: 'Confidence',
  260. status: 'Detection Result',
  261. device: 'Device Used',
  262. imageUrl: 'Image URL',
  263. processedImageUrl: 'Processed Image URL'
  264. }
  265. }
  266. },
  267. annotation: {
  268. datasets: {
  269. title: 'Datasets',
  270. create: 'New Dataset',
  271. count: '{count} datasets',
  272. imageCount: '{count} images'
  273. },
  274. selectDataset: 'Please select a dataset',
  275. selectImage: 'Please select an image',
  276. selectImageHint: 'Select an image from the left list to annotate',
  277. actions: {
  278. deleteSelected: 'Delete Selected',
  279. upload: 'Upload Images',
  280. rename: 'Rename',
  281. gridView: 'Grid View',
  282. annotationView: 'Annotation View',
  283. export: 'Export Dataset',
  284. import: 'Import Dataset',
  285. generate: 'Generate Data',
  286. more: 'More',
  287. deleteDataset: 'Delete Dataset'
  288. },
  289. dialogs: {
  290. upload: {
  291. title: 'Upload Images',
  292. selectFiles: 'Select Images',
  293. upload: 'Upload'
  294. },
  295. create: {
  296. title: 'New Dataset',
  297. name: 'Dataset Name',
  298. nameRequired: 'Please enter dataset name',
  299. type: 'Dataset Type',
  300. create: 'Create'
  301. },
  302. rename: {
  303. title: 'Rename Dataset',
  304. name: 'Dataset Name',
  305. nameRequired: 'Please enter dataset name'
  306. },
  307. delete: {
  308. title: 'Confirm Delete',
  309. confirmImages: 'Are you sure you want to delete {count} selected images? This action cannot be undone.',
  310. confirmDataset: 'Are you sure you want to delete dataset "{name}"? This action cannot be undone.'
  311. }
  312. },
  313. datasetTypes: {
  314. textRegion: 'Text Region Dataset',
  315. ocr: 'OCR Dataset'
  316. },
  317. notifications: {
  318. loadDatasetsFailed: 'Failed to load datasets, please try again',
  319. createDatasetSuccess: 'Dataset created successfully',
  320. createDatasetFailed: 'Failed to create dataset, please try again',
  321. renameSuccess: 'Renamed successfully',
  322. renameFailed: 'Failed to rename, please try again',
  323. deleteDatasetSuccess: 'Dataset deleted successfully',
  324. deleteDatasetFailed: 'Failed to delete dataset, please try again',
  325. deleteImageSuccess: 'Image deleted successfully',
  326. deleteImageFailed: 'Failed to delete image, please try again'
  327. }
  328. },
  329. annotator: {
  330. controls: {
  331. zoomIn: 'Zoom In',
  332. zoomOut: 'Zoom Out',
  333. save: 'Save Annotations',
  334. reload: 'Reload',
  335. deleteSelectedChar: 'Delete Selected ({char})',
  336. cancelDrawing: 'Cancel Drawing',
  337. closeDetails: 'Close Details',
  338. enterFullscreen: 'Enter Fullscreen',
  339. exitFullscreen: 'Exit Fullscreen',
  340. deleteSelected: 'Delete Selected'
  341. },
  342. tools: {
  343. textRegion: 'Text Region (Polygon)',
  344. character: 'Character (Rectangle)',
  345. wheelText: 'Wheel Text (Rectangle)'
  346. },
  347. ocr: {
  348. currentChar: 'Current Character',
  349. selectChar: 'Select Character',
  350. commonChars: 'Common Characters',
  351. more: 'More',
  352. char: 'Character',
  353. position: 'Position',
  354. selectCharTitle: 'Select Annotation Character',
  355. inputChar: 'Input Character',
  356. singleCharRequired: 'Please enter a single character',
  357. commonCharSets: 'Common Character Sets',
  358. recentlyUsed: 'Recently Used',
  359. selectCharFirst: 'Please select a character first'
  360. },
  361. preview: {
  362. toggleAnnotations: 'Toggle Annotations',
  363. toggleLabels: 'Toggle Labels',
  364. label: 'Label',
  365. position: 'Position',
  366. clickToViewDetails: 'Click to View Details',
  367. loading: 'Loading...'
  368. },
  369. notifications: {
  370. loadFailed: 'Failed to load annotations',
  371. saveSuccess: 'Annotations saved successfully',
  372. saveFailed: 'Failed to save annotations',
  373. deleteFailed: 'Failed to delete annotation'
  374. }
  375. },
  376. notFound: {
  377. message: 'Page Not Found',
  378. backToHome: 'Back to Home'
  379. },
  380. generateData: {
  381. title: 'Generate Data',
  382. sourceDataset: {
  383. title: 'Source Dataset',
  384. name: 'Dataset Name',
  385. imageCount: '{count} Images',
  386. annotatedCount: '{count} Annotated'
  387. },
  388. targetDataset: {
  389. title: 'Target Dataset',
  390. newOption: 'Create New Dataset',
  391. existingOption: 'Use Existing Dataset',
  392. sourceOption: 'Use Source Dataset',
  393. new: {
  394. name: {
  395. required: 'Please enter dataset name'
  396. }
  397. },
  398. existing: {
  399. select: 'Please select target dataset'
  400. }
  401. },
  402. generateOptions: {
  403. title: 'Generation Options',
  404. includeAnnotations: 'Include Annotations',
  405. includeAnnotationsHint: 'If checked, annotations from original images will be copied'
  406. },
  407. operations: {
  408. title: 'Operation Selection',
  409. available: 'Available Operations',
  410. selected: 'Selected Operations',
  411. configure: 'Configure Parameters',
  412. duplicate: 'Duplicate Operation',
  413. remove: 'Remove Operation',
  414. single: 'Single',
  415. pipeline: 'Pipeline'
  416. },
  417. preview: {
  418. title: 'Preview',
  419. sourceImage: 'Source Image',
  420. imageId: 'ID: {id}',
  421. originalImage: 'Original Image',
  422. operationResult: {
  423. single: 'Single',
  424. pipeline: 'Pipeline'
  425. }
  426. },
  427. actions: {
  428. preview: 'Generate Preview',
  429. generate: 'Start Generation'
  430. },
  431. progress: {
  432. title: 'Generation Progress',
  433. cancel: 'Cancel Generation',
  434. close: 'Close'
  435. },
  436. configuration: {
  437. title: '{name} Configuration',
  438. sections: {
  439. input: 'Input Parameters',
  440. output: 'Output Parameters'
  441. },
  442. params: {
  443. required: 'Required Parameter',
  444. optional: 'Optional Parameter',
  445. defaultValue: 'Default: {value}',
  446. yes: 'Yes',
  447. no: 'No'
  448. },
  449. imageParam: {
  450. hint: 'Select image input source',
  451. useDataset: 'Use Dataset Image',
  452. upload: 'Upload Custom Image'
  453. },
  454. annotationParam: {
  455. hint: 'Select annotation data source',
  456. useDataset: 'Use Dataset Annotation',
  457. custom: 'Custom Annotation Data',
  458. customHint: 'Please enter valid JSON format annotation data'
  459. },
  460. output: {
  461. hint: 'Select output results to save',
  462. image: {
  463. title: 'Image Output',
  464. noOutput: 'No image output for this operation'
  465. },
  466. annotation: {
  467. title: 'Annotation Output',
  468. noOutput: 'No annotation output for this operation'
  469. }
  470. },
  471. actions: {
  472. reset: 'Reset Parameters',
  473. close: 'Close'
  474. }
  475. },
  476. notifications: {
  477. loadError: 'Failed to load data',
  478. previewError: 'Failed to generate preview',
  479. generateSuccess: 'Data generation completed',
  480. generateError: 'Failed to generate data',
  481. cancelConfirm: {
  482. title: 'Cancel Confirmation',
  483. message: 'Are you sure you want to cancel the current generation task?',
  484. canceled: 'Generation task canceled'
  485. }
  486. }
  487. },
  488. modelTester: {
  489. selectModel: {
  490. title: 'Please Select a Model',
  491. hint: 'Select a trained model from the list to test'
  492. },
  493. model: {
  494. id: 'Model ID'
  495. },
  496. params: {
  497. title: 'Parameter Settings',
  498. confThreshold: 'Confidence Threshold',
  499. iouThreshold: 'IOU Threshold'
  500. },
  501. image: {
  502. title: 'Test Image',
  503. select: 'Select Image',
  504. test: 'Test Model'
  505. },
  506. result: {
  507. title: 'Test Results',
  508. noImage: 'Please upload an image to test',
  509. preview: 'Preview Image',
  510. detectionResult: 'Detection Result',
  511. detectedObjects: 'Detected Objects:',
  512. confidence: 'Confidence',
  513. noDetection: 'No objects detected'
  514. },
  515. notifications: {
  516. noImageData: 'Failed to get image data',
  517. noObjectsDetected: 'No objects detected',
  518. detectionCount: '{count} objects detected',
  519. testFailed: 'Test failed: {error}',
  520. testError: 'Test error: {error}'
  521. }
  522. },
  523. alarmPanel: {
  524. title: {
  525. info: '',
  526. warning: '系统警告',
  527. error: '系统错误',
  528. critical: '严重故障',
  529. default: '系统告警'
  530. },
  531. actions: {
  532. acknowledgeAll: '确认所有',
  533. close: '关闭'
  534. },
  535. status: {
  536. alarmCount: '共 {count} 条告警',
  537. emergencyStop: '紧急停止'
  538. },
  539. notifications: {
  540. alarmAcknowledged: '告警已确认',
  541. allAlarmsAcknowledged: '所有告警已确认'
  542. }
  543. },
  544. cameraPreview: {
  545. loading: '加载摄像头...',
  546. error: {
  547. connection: '无法连接到摄像头',
  548. status: '获取摄像头状态出错:'
  549. },
  550. stream: {
  551. alt: '摄像头画面'
  552. }
  553. },
  554. model: {
  555. list: {
  556. title: 'Model List',
  557. empty: 'No models available',
  558. create: 'Create Model',
  559. refresh: 'Refresh List',
  560. architecture: 'Model Architecture',
  561. actions: {
  562. test: 'Test Model',
  563. delete: 'Delete Model'
  564. }
  565. },
  566. training: {
  567. title: 'Training Parameters',
  568. params: {
  569. architecture: 'Model Architecture',
  570. epochs: 'Training Epochs',
  571. batchSize: 'Batch Size',
  572. imgSize: 'Image Size',
  573. confThres: 'Confidence Threshold',
  574. iouThres: 'IOU Threshold',
  575. lr0: 'Initial Learning Rate',
  576. lrf: 'Final LR Factor',
  577. patience: 'Early Stop Patience',
  578. optimizer: 'Optimizer',
  579. weightDecay: 'Weight Decay',
  580. momentum: 'Momentum',
  581. warmupEpochs: 'Warmup Epochs',
  582. workers: 'Data Loader Workers',
  583. device: 'Training Device',
  584. mosaic: 'Mosaic Augmentation',
  585. cache: 'Cache Training Images',
  586. savePeriod: 'Save Period',
  587. deviceOptions: {
  588. cpu: 'CPU',
  589. cuda: 'GPU (CUDA)',
  590. '0': 'GPU 0'
  591. }
  592. },
  593. start: 'Start Training',
  594. stop: 'Stop Training',
  595. modes: {
  596. config: 'Configure Training',
  597. test: 'Test Model',
  598. logs: 'Training Logs',
  599. files: 'Training Files'
  600. },
  601. actions: {
  602. startTraining: 'Start Training',
  603. stopTraining: 'Stop Training',
  604. testModel: 'Test Model',
  605. viewLogs: 'View Logs',
  606. viewFiles: 'View Files'
  607. }
  608. },
  609. progress: {
  610. title: 'Training Progress',
  611. refresh: 'Refresh Progress',
  612. epoch: 'Current Epoch',
  613. loss: 'Loss Value',
  614. eta: 'Estimated Time Remaining'
  615. },
  616. logs: {
  617. title: 'Training Logs',
  618. refresh: 'Refresh Logs',
  619. copy: 'Copy Logs',
  620. scrollToBottom: 'Scroll to Bottom',
  621. empty: 'No logs available'
  622. },
  623. files: {
  624. title: 'Model Files',
  625. refresh: 'Refresh Files',
  626. root: 'Return to Root',
  627. download: 'Download File',
  628. preview: 'Preview File',
  629. empty: 'No files available',
  630. actions: {
  631. root: 'Return to Root',
  632. }
  633. },
  634. dialogs: {
  635. create: {
  636. title: 'Create New Model',
  637. name: 'Model Name',
  638. nameRequired: 'Please enter a model name',
  639. dataset: 'Training Dataset',
  640. datasetRequired: 'Please select a training dataset'
  641. },
  642. delete: {
  643. message: 'Are you sure you want to delete model {name}? This action cannot be undone.'
  644. }
  645. },
  646. notifications: {
  647. createSuccess: 'Model created successfully',
  648. createFailed: 'Failed to create model: {error}',
  649. deleteSuccess: 'Model deleted successfully',
  650. deleteFailed: 'Failed to delete model: {error}',
  651. trainStarted: 'Model training started',
  652. trainFailed: 'Failed to start training: {error}',
  653. updateParamsFailed: 'Failed to update parameters: {error}',
  654. loadDatasetsFailed: 'Failed to load datasets',
  655. copyModelId: 'Model ID copied',
  656. copyModelIdFailed: 'Failed to copy model ID',
  657. copyLogs: 'Logs copied',
  658. copyLogsFailed: 'Failed to copy logs',
  659. downloadStarted: 'Started downloading {name}'
  660. },
  661. status: {
  662. empty: 'Please select a model',
  663. emptyHint: 'Select a model from the list on the left, or create a new one',
  664. notTraining: 'Model is not currently training, no training logs available',
  665. notCompleted: 'This model has not completed training and cannot be tested',
  666. selectFeature: 'Please select a feature or operation'
  667. }
  668. },
  669. realtime: {
  670. title: 'Realtime Monitoring',
  671. camera: {
  672. select: 'Select Camera',
  673. video: 'Camera Video',
  674. processed: 'Processed Video',
  675. processing: 'Processing...',
  676. streamActive: 'Processing Stream Active',
  677. streamWaiting: 'Waiting for Stream...'
  678. },
  679. operation: {
  680. title: 'Operation Selection',
  681. select: 'Select Image Processing Operation',
  682. selectRequired: 'Please select an operation',
  683. types: {
  684. single: 'Single',
  685. pipeline: 'Pipeline'
  686. },
  687. apply: 'Apply Operation',
  688. startStream: 'Start Processing Stream',
  689. stopStream: 'Stop Processing Stream',
  690. detection: 'Detection'
  691. },
  692. result: {
  693. title: 'Detection Results',
  694. waiting: 'Waiting for detection results...',
  695. status: {
  696. pass: 'Pass',
  697. fail: 'Fail'
  698. },
  699. details: {
  700. time: 'Detection Time',
  701. source: 'Image Source',
  702. text: 'Recognized Text',
  703. confidence: 'Confidence',
  704. error: 'Error Reason',
  705. filename: 'Filename',
  706. noText: 'Unable to recognize'
  707. }
  708. },
  709. control: {
  710. title: 'Camera Control',
  711. autoDetect: {
  712. start: 'Start Auto Detection',
  713. stop: 'Stop Auto Detection'
  714. },
  715. capture: 'Single Capture',
  716. exposure: 'Exposure Time',
  717. gain: 'Gain'
  718. },
  719. notifications: {
  720. selectCamera: 'Please select a camera first',
  721. selectOperation: 'Please select an operation first',
  722. cameraUnavailable: 'Selected camera is currently unavailable',
  723. startProcessing: 'Starting video processing...',
  724. invalidOperation: 'Invalid operation information',
  725. streamStarted: 'Real-time processing started',
  726. streamStartFailed: 'Failed to start processing stream: {error}',
  727. stopProcessing: 'Stopping video processing...',
  728. streamStopped: 'Real-time processing stopped',
  729. streamError: 'Failed to load processing stream, please check camera and network connection',
  730. retrying: 'Loading processing stream, retrying...',
  731. streamConnected: 'Processing stream connected',
  732. autoDetectStarted: 'Auto detection started',
  733. autoDetectStopped: 'Auto detection stopped',
  734. processingComplete: 'Image processing complete',
  735. processingFailed: 'Failed to process image: {error}',
  736. uploadImage: 'No active camera stream, please upload an image',
  737. noCameraControl: 'Camera control not found',
  738. cameraSelected: 'Selected camera: {name}'
  739. },
  740. status: {
  741. online: 'Online',
  742. offline: 'Offline',
  743. error: 'Error',
  744. unknown: 'Unknown'
  745. }
  746. },
  747. cvOperation: {
  748. tabs: {
  749. single: 'Single Operation',
  750. pipeline: 'Pipeline Operation'
  751. }
  752. },
  753. camera: {
  754. capture: {
  755. loading: 'Loading camera...',
  756. error: 'Failed to load processing stream, please check camera and network connection',
  757. noCamera: 'No active camera stream, please upload an image',
  758. uploadedImage: 'Uploaded image, waiting for processing',
  759. videoStream: 'Video Stream',
  760. streaming: 'Streaming',
  761. stopped: 'Stopped',
  762. useUploadedImage: 'Use uploaded image',
  763. reupload: 'Reupload',
  764. capture: 'Capture',
  765. uploadImage: 'Upload Image',
  766. stopMonitoring: 'Stop Monitoring',
  767. startMonitoring: 'Start Monitoring'
  768. }
  769. },
  770. cv: {
  771. parameter: {
  772. name: 'Parameter Name',
  773. nameRequired: 'Please enter parameter name',
  774. type: 'Parameter Type',
  775. typeRequired: 'Please select parameter type',
  776. description: 'Description',
  777. defaultValue: 'Default Value',
  778. required: 'Required Parameter'
  779. },
  780. operation: {
  781. new: 'New Operation',
  782. import: 'Import',
  783. importTooltip: 'Import operation configuration',
  784. export: 'Export',
  785. exportTooltip: 'Export operation configuration',
  786. delete: 'Delete',
  787. deleteSelected: 'Delete ({count})',
  788. deleteTooltip: 'Delete selected operations',
  789. operationCount: '{count} Operations',
  790. search: 'Search operation name or description',
  791. refresh: 'Refresh List',
  792. columns: {
  793. name: 'Operation Name',
  794. description: 'Description',
  795. createdAt: 'Created At',
  796. actions: 'Actions'
  797. },
  798. actions: {
  799. edit: 'Edit',
  800. test: 'Test',
  801. delete: 'Delete'
  802. },
  803. deleteConfirm: {
  804. title: 'Delete Confirmation',
  805. singleMessage: 'Are you sure you want to delete operation "{name}"?',
  806. batchMessage: 'Are you sure you want to delete {count} selected operations?',
  807. cancel: 'Cancel',
  808. confirm: 'Delete'
  809. },
  810. validation: {
  811. nameRequired: 'Operation name cannot be empty',
  812. invalidCode: 'Invalid code format'
  813. },
  814. importExport: {
  815. importErrorDetails: 'Import Error Details',
  816. exportColumns: {
  817. name: 'Operation Name',
  818. description: 'Description',
  819. code: 'Code',
  820. inputParams: 'Input Parameters',
  821. outputParams: 'Output Parameters',
  822. createdAt: 'Created At',
  823. updatedAt: 'Updated At'
  824. },
  825. exportSheetName: 'Operations',
  826. exportFileName: 'cv_operations'
  827. },
  828. notifications: {
  829. loadError: 'Failed to load operations',
  830. saveSuccess: 'Operation saved successfully',
  831. saveError: 'Failed to save operation',
  832. deleteSuccess: 'Operation deleted successfully',
  833. batchDeleteSuccess: 'Operations deleted successfully',
  834. deleteError: 'Failed to delete operation',
  835. importFailed: 'Failed to import operation "{name}"',
  836. importPartialSuccess: 'Import completed: {success} successful, {failed} failed',
  837. importSuccess: 'Successfully imported {count} operations',
  838. importError: 'Import failed',
  839. exportSuccess: 'Successfully exported {count} operations',
  840. exportError: 'Export failed'
  841. },
  842. },
  843. operationEditor: {
  844. title: {
  845. edit: 'Edit Operation',
  846. new: 'New Operation'
  847. },
  848. actions: {
  849. test: 'Run',
  850. save: 'Save',
  851. close: 'Close'
  852. },
  853. basicInfo: {
  854. title: 'Basic Information',
  855. name: 'Operation Name',
  856. nameRequired: 'Please enter operation name',
  857. description: 'Description'
  858. },
  859. parameters: {
  860. title: 'Parameter Configuration',
  861. tabs: {
  862. input: 'Input Parameters',
  863. output: 'Output Parameters'
  864. },
  865. param: 'Parameter {index}',
  866. addInput: 'Add Input Parameter',
  867. addOutput: 'Add Output Parameter'
  868. },
  869. codeEditor: {
  870. title: 'Python Code Editor'
  871. },
  872. notifications: {
  873. initError: 'Failed to initialize editor',
  874. extractError: 'Failed to extract user code',
  875. updateError: 'Failed to update code template',
  876. editorError: 'Failed to get editor content',
  877. setContentError: 'Failed to set editor content'
  878. }
  879. },
  880. pipeline: {
  881. new: 'New Pipeline',
  882. import: 'Import',
  883. importTooltip: 'Import pipeline configuration',
  884. export: 'Export',
  885. exportTooltip: 'Export pipeline configuration',
  886. delete: 'Delete',
  887. deleteSelected: 'Delete ({count})',
  888. deleteTooltip: 'Delete selected pipelines',
  889. pipelineCount: '{count} Pipelines',
  890. nodeCount: '{count} Nodes',
  891. search: 'Search pipeline name or description',
  892. refresh: 'Refresh List',
  893. columns: {
  894. name: 'Pipeline Name',
  895. description: 'Description',
  896. nodes: 'Nodes',
  897. createdAt: 'Created At',
  898. actions: 'Actions'
  899. },
  900. actions: {
  901. edit: 'Edit',
  902. test: 'Test',
  903. delete: 'Delete'
  904. },
  905. deleteConfirm: {
  906. title: 'Delete Confirmation',
  907. singleMessage: 'Are you sure you want to delete pipeline "{name}"?',
  908. batchMessage: 'Are you sure you want to delete {count} selected pipelines?',
  909. cancel: 'Cancel',
  910. confirm: 'Delete'
  911. },
  912. validation: {
  913. nameRequired: 'Pipeline name cannot be empty',
  914. metadataRequired: 'Pipeline metadata cannot be empty',
  915. invalidMetadata: 'Invalid pipeline configuration',
  916. fileSizeLimit: 'File size cannot exceed 10MB',
  917. fileTypeError: 'Only .xlsx files are supported',
  918. missingField: 'Missing required field: {field}'
  919. },
  920. importExport: {
  921. errorDetails: 'Import Error Details',
  922. columns: {
  923. name: 'Pipeline Name',
  924. description: 'Description',
  925. metadata: 'Metadata',
  926. inputParams: 'Input Parameters',
  927. outputParams: 'Output Parameters',
  928. createdAt: 'Created At',
  929. updatedAt: 'Updated At'
  930. },
  931. sheetName: 'Pipelines',
  932. fileName: 'pipelines'
  933. },
  934. notifications: {
  935. loadError: 'Failed to load pipelines',
  936. saveSuccess: 'Pipeline saved successfully',
  937. saveError: 'Failed to save pipeline',
  938. deleteSuccess: 'Pipeline deleted successfully',
  939. batchDeleteSuccess: 'Pipelines deleted successfully',
  940. deleteError: 'Failed to delete pipeline',
  941. importFailed: 'Failed to import pipeline "{name}": {error}',
  942. importPartialSuccess: 'Import completed: {success} successful, {failed} failed',
  943. importSuccess: 'Successfully imported {count} pipelines',
  944. importError: 'Import failed',
  945. exportSuccess: 'Successfully exported {count} pipelines',
  946. exportError: 'Export failed',
  947. testPanelError: 'Cannot open test panel: Pipeline does not exist',
  948. jsonParseError: 'Failed to parse JSON'
  949. }
  950. },
  951. operationTestPanel: {
  952. title: 'Operation Test',
  953. actions: {
  954. run: 'Run',
  955. close: 'Close'
  956. },
  957. input: {
  958. title: 'Input Parameters',
  959. jsonFormat: ' (JSON format)'
  960. },
  961. output: {
  962. title: 'Output Results'
  963. },
  964. validation: {
  965. required: 'Required field',
  966. invalidJson: 'Please enter valid JSON format'
  967. }
  968. },
  969. pipelineEditor: {
  970. title: {
  971. new: 'New Pipeline',
  972. edit: 'Edit Pipeline'
  973. },
  974. actions: {
  975. run: 'Run',
  976. save: 'Save',
  977. close: 'Close'
  978. },
  979. basicInfo: {
  980. title: 'Basic Information',
  981. name: 'Pipeline Name',
  982. nameRequired: 'Please enter pipeline name',
  983. description: 'Description'
  984. },
  985. nodeToolbox: {
  986. title: 'Node Toolbox'
  987. },
  988. nodeProperties: {
  989. title: 'Node Properties',
  990. name: 'Node Name',
  991. operation: 'Select Operation',
  992. noOperationFound: 'No matching operation found',
  993. noDescription: 'No description',
  994. parameters: {
  995. title: 'Parameter Configuration',
  996. valueSource: 'Value Source',
  997. customValue: 'Custom Value',
  998. customValueJson: 'Custom Value (JSON Format)'
  999. }
  1000. },
  1001. flowEditor: {
  1002. title: 'Pipeline Designer',
  1003. undo: 'Undo (Ctrl+Z)',
  1004. redo: 'Redo (Ctrl+Y)',
  1005. delete: 'Delete Selected (Delete)',
  1006. clear: 'Clear Canvas',
  1007. center: 'Center View',
  1008. zoomIn: 'Zoom In',
  1009. zoomOut: 'Zoom Out'
  1010. },
  1011. notifications: {
  1012. cannotDeleteStartEnd: 'Cannot delete start and end nodes',
  1013. initFailed: 'Failed to initialize pipeline designer'
  1014. }
  1015. }
  1016. }
  1017. }