## 시간 표시 KST 통일 - shared/utils/dateFormat.ts 공통 유틸 신규 (formatDateTime/formatDate/formatTime/toDateParam) - 14개 파일에서 인라인 toLocaleString → 공통 유틸 교체 ## i18n 'group.parentInference' 사이드바 미번역 수정 - ko/en common.json의 'group' 키 중복 정의를 병합 (95행 두번째 group 객체가 35행을 덮어써서 parentInference 누락) ## Dashboard/MonitoringDashboard/Statistics 더미→실 API - 백엔드 GET /api/stats/hourly 신규 (PredictionStatsHourly 엔티티/리포지토리) - Dashboard: HOURLY_DETECTION/VESSEL_TYPE/AREA_RISK 하드코딩 제거 → getHourlyStats(24) + getDailyStats(today) 결과로 useMemo 변환 - MonitoringDashboard: TREND Math.random() 제거 → getHourlyStats 기반 위험도 가중평균 + 경보 카운트 - Statistics: KPI_DATA 하드코딩 제거 → getKpiMetrics() 결과를 표 행으로 ## Store mock 의존성 제거 - eventStore.alerts/MOCK_ALERTS 제거 (MobileService는 events에서 직접 추출) - enforcementStore.plans 제거 (EnforcementPlan은 이미 직접 API 호출) - transferStore + MOCK_TRANSFERS 완전 제거 (ChinaFishing/TransferDetection은 RealTransshipSuspects 컴포넌트 사용) - mock/events.ts, mock/enforcement.ts, mock/transfers.ts 파일 삭제 ## RiskMap 랜덤 격자 제거 - generateGrid() Math.random() 제거 → 빈 배열 + 'AI 분석 데이터 수집 중' 안내 - MTIS 외부 통계 5개 탭에 [MTIS 외부 통계] 배지 추가 ## 12개 mock 화면에 '데모 데이터' 노란색 배지 추가 - patrol/PatrolRoute, FleetOptimization - admin/AdminPanel, DataHub, NoticeManagement, SystemConfig - ai-operations/AIModelManagement, MLOpsPage - field-ops/ShipAgent - statistics/ReportManagement, ExternalService - surveillance/MapControl ## 백엔드 NUMERIC precision 동기화 - PredictionKpi.deltaPct: 5,2 → 12,2 - PredictionStatsDaily/Monthly.aiAccuracyPct: 5,2 → 12,2 - (V015 마이그레이션과 동기화) 44 files changed, +346 / -787 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
102 lines
2.6 KiB
JSON
102 lines
2.6 KiB
JSON
{
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"monitoring": "Alert Monitor",
|
|
"riskMap": "Risk Map",
|
|
"enforcementPlan": "Enforcement Plan",
|
|
"darkVessel": "Dark Vessel",
|
|
"gearDetection": "Gear Detection",
|
|
"chinaFishing": "Chinese Vessel",
|
|
"patrolRoute": "Patrol Route",
|
|
"fleetOptimization": "Fleet Optimize",
|
|
"enforcementHistory": "History",
|
|
"eventList": "Event List",
|
|
"mobileService": "Mobile",
|
|
"shipAgent": "Ship Agent",
|
|
"aiAlert": "AI Alert",
|
|
"statistics": "Statistics",
|
|
"externalService": "External API",
|
|
"reports": "Reports",
|
|
"aiModel": "AI Model",
|
|
"mlops": "MLOps",
|
|
"aiAssistant": "AI Q&A",
|
|
"dataHub": "Data Hub",
|
|
"systemConfig": "Settings",
|
|
"notices": "Notices",
|
|
"accessControl": "Access",
|
|
"admin": "Admin",
|
|
"parentReview": "Parent Review",
|
|
"parentExclusion": "Exclusion",
|
|
"labelSession": "Label Session",
|
|
"auditLogs": "Audit Logs",
|
|
"accessLogs": "Access Logs",
|
|
"loginHistory": "Login History"
|
|
},
|
|
"status": {
|
|
"active": "Active",
|
|
"inactive": "Inactive",
|
|
"online": "Online",
|
|
"offline": "Offline",
|
|
"tracking": "Tracking",
|
|
"monitoring": "Monitoring",
|
|
"confirmed": "Confirmed",
|
|
"pending": "Pending"
|
|
},
|
|
"alert": {
|
|
"critical": "Critical",
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low"
|
|
},
|
|
"action": {
|
|
"search": "Search",
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"export": "Export",
|
|
"print": "Print",
|
|
"download": "Download",
|
|
"upload": "Upload",
|
|
"filter": "Filter",
|
|
"reset": "Reset",
|
|
"confirm": "Confirm",
|
|
"close": "Close"
|
|
},
|
|
"layout": {
|
|
"brandTitle": "Fishing Patrol",
|
|
"brandSub": "AI Detection Platform",
|
|
"alertCount_one": "{{count}} Alert",
|
|
"alertCount_other": "{{count}} Alerts",
|
|
"searchPlaceholder": "Search vessel, MMSI, area...",
|
|
"pageSearch": "Search in page...",
|
|
"sessionExpiring": "Session expiring",
|
|
"extendNeeded": "Extend needed",
|
|
"auth": "Auth:",
|
|
"logout": "Logout",
|
|
"download": "Download",
|
|
"excel": "Excel",
|
|
"print": "Print",
|
|
"noExportTable": "No table to export.",
|
|
"fileDownload": "File Download",
|
|
"excelExport": "Excel (CSV) Export"
|
|
},
|
|
"role": {
|
|
"ADMIN": "Admin",
|
|
"OPERATOR": "Operator",
|
|
"ANALYST": "Analyst",
|
|
"FIELD": "Field Officer",
|
|
"VIEWER": "Viewer"
|
|
},
|
|
"group": {
|
|
"monitoring": "Monitoring",
|
|
"detection": "Detection",
|
|
"patrol": "Patrol",
|
|
"enforcement": "Enforcement",
|
|
"fieldOps": "Field Ops",
|
|
"parentInference": "Parent Workflow",
|
|
"statistics": "Statistics",
|
|
"aiOps": "AI Ops",
|
|
"admin": "Admin"
|
|
}
|
|
}
|